<?php
namespace App\Entity\System;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\System\MenuItemRepository")
*
* @ORM\Table(name="menu_item")
*/
class MenuItem
{
public const LINK_TYPE_CMS = 'cms';
public const LINK_TYPE_CMS_ABSOLUTE = 'cms_absolute';
/**
* @var int
*
* @ORM\Id
*
* @ORM\GeneratedValue(strategy="AUTO")
*
* @ORM\Column(type="integer")
*/
private $id;
/**
* @var Menu
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\Menu")
*
* @ORM\JoinColumn(name="menu_id",referencedColumnName="id")
*/
private $menu;
/**
* @var MenuItem|null
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\MenuItem", inversedBy="children")
*
* @ORM\JoinColumn(name="parent",referencedColumnName="id")
*/
private $parent;
/**
* @var string|null
*
* @ORM\Column(type="string", length=30, nullable=true)
*/
private $linkType;
/**
* @var string|null
*
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $linkValue;
/**
* @var int
*
* @ORM\Column(type="integer")
*/
private $position;
/**
* @var string|null
*
* @ORM\Column(type="string", length=20, nullable=true)
*/
private $tag;
/**
* @var string|null
*
* @ORM\Column(type="string", length=100, nullable=true)
*/
private $icon;
/**
* @var int
*
* @ORM\Column(type="integer", options={"default" : 0})
*/
private $numberColumns;
/**
* @var bool
*
* @ORM\Column(type="boolean", columnDefinition="tinyint(1)", options={"default" : 0})
*/
private $visibility;
/**
* @var int
*
* @ORM\Column(type="integer", options={"default" : 0})
*/
private $colspan;
/**
* @var MenuItem[]|ArrayCollection
*
* @ORM\OneToMany(targetEntity="MenuItem", mappedBy="parent")
*/
private $children;
/**
* @var ArrayCollection|MenuItemLang[]
*
* @ORM\OneToMany(targetEntity="MenuItemLang", mappedBy="menuItem", indexBy="language_id", orphanRemoval=true)
*/
private $translations;
/**
* @var string|null
*
* @ORM\Column(type="string", length=30, nullable=true)
*/
private $target;
/**
* @var bool
*
* @ORM\Column(type="boolean", options={"default" : 0})
*/
private $additional;
public function __construct()
{
$this->children = new ArrayCollection();
$this->translations = new ArrayCollection();
}
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
*
* @return MenuItem
*/
public function setId(int $id): self
{
$this->id = $id;
return $this;
}
/**
* @return Menu
*/
public function getMenu(): Menu
{
return $this->menu;
}
/**
* @param Menu $menu
*
* @return MenuItem
*/
public function setMenu(Menu $menu): self
{
$this->menu = $menu;
return $this;
}
/**
* @return string|null
*/
public function getLinkType(): ?string
{
return $this->linkType;
}
/**
* @param string|null $linkType
*
* @return MenuItem
*/
public function setLinkType(?string $linkType): self
{
$this->linkType = $linkType;
return $this;
}
/**
* @return string|null
*/
public function getLinkValue(): ?string
{
return $this->linkValue;
}
/**
* @param string|null $linkValue
*
* @return MenuItem
*/
public function setLinkValue(?string $linkValue): self
{
$this->linkValue = $linkValue;
return $this;
}
/**
* @return int
*/
public function getPosition(): int
{
return $this->position;
}
/**
* @param int $position
*
* @return MenuItem
*/
public function setPosition(int $position): self
{
$this->position = $position;
return $this;
}
/**
* @return string|null
*/
public function getTag(): ?string
{
return $this->tag;
}
/**
* @param string|null $tag
*
* @return MenuItem
*/
public function setTag(?string $tag): self
{
$this->tag = $tag;
return $this;
}
/**
* @return string|null
*/
public function getIcon(): ?string
{
return $this->icon;
}
/**
* @param string|null $icon
*
* @return MenuItem
*/
public function setIcon(?string $icon): self
{
$this->icon = $icon;
return $this;
}
/**
* @return int
*/
public function getNumberColumns(): int
{
return $this->numberColumns;
}
/**
* @param int $numberColumns
*
* @return MenuItem
*/
public function setNumberColumns(int $numberColumns): self
{
$this->numberColumns = $numberColumns;
return $this;
}
/**
* @return bool
*/
public function isVisible(): bool
{
return $this->visibility;
}
/**
* @param bool $visibility
*
* @return MenuItem
*/
public function setVisibility(bool $visibility): self
{
$this->visibility = $visibility;
return $this;
}
/**
* @return MenuItem[]|ArrayCollection
*/
public function getChildren()
{
return $this->children;
}
/**
* @return MenuItem|null
*/
public function getParent(): ?MenuItem
{
return $this->parent;
}
/**
* @return MenuItemLang[]|ArrayCollection
*/
public function getTranslations()
{
return $this->translations;
}
/**
* @return bool
*/
public function isVisibility(): bool
{
return $this->visibility;
}
/**
* @return int
*/
public function getColspan(): int
{
return $this->colspan;
}
/**
* @return bool
*/
public function isAdditional(): bool
{
return $this->additional;
}
/**
* @return string|null
*/
public function getTarget(): ?string
{
return $this->target;
}
public function setParent(?MenuItem $parent): MenuItem
{
$this->parent = $parent;
return $this;
}
public function setColspan(int $colspan): MenuItem
{
$this->colspan = $colspan;
return $this;
}
/**
* @param MenuItem[]|ArrayCollection<int, MenuItem> $children
*
* @return MenuItem
*/
public function setChildren($children)
{
$this->children = $children;
return $this;
}
/**
* @param MenuItemLang[]|ArrayCollection<int, MenuItemLang> $translations
*
* @return MenuItem
*/
public function setTranslations($translations)
{
$this->translations = $translations;
return $this;
}
public function setTarget(?string $target): MenuItem
{
$this->target = $target;
return $this;
}
public function setAdditional(bool $additional): MenuItem
{
$this->additional = $additional;
return $this;
}
}