<?php
namespace Cms\TagBundle\Entity;
use Cms\CoreBundle\Model\Interfaces\Nestable\NestableInterface;
use Cms\CoreBundle\Model\Interfaces\Nestable\NestableTrait;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Cms\TenantBundle\Entity\TenantedEntity;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* Class Tag
* @package Cms\TagBundle\Entity
*
* @Gedmo\Tree(type="nested")
* @ORM\Entity(repositoryClass = "Cms\TagBundle\Doctrine\TagRepository")
* @ORM\HasLifecycleCallbacks
* @ORM\Table(name = "cms__tag__tag", indexes={@ORM\Index(columns={"parent_id"})})
*/
class Tag extends TenantedEntity implements NestableInterface
{
use NestableTrait;
/**
* Display name for the tag.
*
* @var string
*
* @ORM\Column(type = "string", nullable = false)
*/
protected $name;
/**
* @var Tag
*
* @Gedmo\TreeParent
* @ORM\ManyToOne(targetEntity="Cms\TagBundle\Entity\Tag", inversedBy="children")
* @ORM\JoinColumns({@ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="CASCADE")})
*/
protected $parent;
/**
* @ORM\OneToMany(targetEntity="Cms\TagBundle\Entity\Tag", mappedBy="parent")
* @ORM\OrderBy({"lft" = "ASC"})
*/
protected $children;
/**
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @param string $value
* @return $this
*/
public function setName($value)
{
$this->name = $value;
return $this;
}
}