<?php
/**
 * MetaTagPreset Entity
 * 
 * @author Elze Kool <info@visualmedia.nl>
 */
namespace VisualM\TagManagerBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use VisualM\TagManagerBundle\Doctrine\FieldType\WijzigbaarType;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * MetaTagPreset Entity
 *
 * @ORM\Entity(repositoryClass="MetaTagPresetRepository")
 * @ORM\Table(name="meta_tag_preset")
 *
 * @author Elze Kool <info@visualmedia.nl>
 */
class MetaTagPreset extends MetaTagBase
{
    /**
     * @ORM\Column(name="titel", type="string", nullable = false)
     */
    protected $titel;

    /**
     * @ORM\Column(name="naam", type="string", nullable = true)
     */
    protected $naam;

    /**
     * @ORM\Column(name="type", type="meta_type", nullable = false)
     */
    protected $type;

    /**
     * @ORM\Column(name="required", type="boolean", nullable = false, options={"default"=1})
     */
    protected $required;
    
    /**
     * @ORM\Column(name="zichtbaar_wijzigbaar", type="wijzigbaar_type", nullable = false)
     */
    protected $zichtbaarWijzigbaar = WijzigbaarType::VOLLEDIG;

    /**
     * @ORM\Column(name="inhoud_wijzigbaar", type="wijzigbaar_type", nullable = false)
     */
    protected $inhoudWijzigbaar = WijzigbaarType::VOLLEDIG;

    /**
     * @ORM\ManyToOne(targetEntity="MetaTagSet", inversedBy="metaTagPresets")
     * @ORM\JoinColumn(name="meta_tag_set_id", referencedColumnName="id")
     */
    protected $metaTagSet;

    /**
     * @ORM\OneToMany(targetEntity="MetaTag", mappedBy="metaTagPreset", orphanRemoval=true)
     * @var ArrayCollection 
     */
    protected $metaTags;

    /**
     * Constructor
     */
    public function __construct()
    {
        $this->metaTags = new ArrayCollection();
    }  

    /**
     * Get Titel
     *
     * @return string Titel
     **/
    public function getTitel()
    {
        return $this->titel;
    }

    /**
     * Set Titel
     *
     * @param string $titel Titel
     *
     * @return void
     **/
    public function setTitel($titel)
    {
        $this->titel = $titel;
    }

    /**
     * Get Naam
     *
     * @return string Naam
     **/
    public function getNaam()
    {
        return $this->naam;
    }

    /**
     * Set Naam
     *
     * @param string $naam Naam
     *
     * @return void
     **/
    public function setNaam($naam)
    {
        $this->naam = $naam;
    }

    /**
     * Get Type
     *
     * @return string Type
     **/
    public function getType()
    {
        return $this->type;
    }

    /**
     * Set Type
     *
     * @param string $type Type
     *
     * @return void
     **/
    public function setType($type)
    {
        $this->type = $type;
    }

    /**
     * Get Required
     *
     * @return string Required
     **/
    public function getRequired()
    {
        return $this->required;
    }

    /**
     * Set Required
     *
     * @param string $required Required
     *
     * @return void
     **/
    public function setRequired($required)
    {
        $this->required = $required;
    }
    
    /**
     * Get Zichtbaar Wijzigbaar
     *
     * @return string Zichtbaar Wijzigbaar
     **/
    public function getZichtbaarWijzigbaar()
    {
        return $this->zichtbaarWijzigbaar;
    }

    /**
     * Set Zichtbaar Wijzigbaar
     *
     * @param string $zichtbaarWijzigbaar Zichtbaar Wijzigbaar
     *
     * @return void
     **/
    public function setZichtbaarWijzigbaar($zichtbaarWijzigbaar)
    {
        $this->zichtbaarWijzigbaar = $zichtbaarWijzigbaar;
    }

    /**
     * Get Inhoud Wijzigbaar
     *
     * @return string Inhoud Wijzigbaar
     **/
    public function getInhoudWijzigbaar()
    {
        return $this->inhoudWijzigbaar;
    }

    /**
     * Set Inhoud Wijzigbaar
     *
     * @param string $inhoudWijzigbaar Inhoud Wijzigbaar
     *
     * @return void
     **/
    public function setInhoudWijzigbaar($inhoudWijzigbaar)
    {
        $this->inhoudWijzigbaar = $inhoudWijzigbaar;
    }

    /**
     * Get MetaTagSet
     *
     * @return MetaTagSet MetaTagSet
     **/
    public function getMetaTagSet()
    {
        return $this->metaTagSet;
    }

    /**
     * Set MetaTagSet
     *
     * @param MetaTagSet $metaTagSet MetaTagSet
     *
     * @return void
     **/
    public function setMetaTagSet($metaTagSet)
    {
        $this->metaTagSet = $metaTagSet;
    }

    /**
     * Get Tags
     *
     * @return ArrayCollection Tags
     **/
    public function getMetaTags()
    {
        return $this->metaTags;
    }

    /**
     * Set Tags
     *
     * @param ArrayCollection $metaTags Tags
     *
     * @return void
     **/
    public function setMetaTags($metaTags)
    {
        $this->metaTags = $metaTags;
    }
}
