src/Entity/ModelMenu.php line 16
<?phpnamespace App\Entity;use App\Repository\ModelMenuRepository;use App\Trait\ActivableTrait;use App\Trait\DateTrait;use App\Trait\DeletableTrait;use DateTimeImmutable;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;#[ORM\Entity(repositoryClass: ModelMenuRepository::class)]class ModelMenu{use ActivableTrait;use DateTrait;use DeletableTrait;#[ORM\Id]#[ORM\GeneratedValue]#[ORM\Column]private ?int $id = null;#[ORM\ManyToMany(targetEntity: Model::class)]private Collection $model;#[ORM\Column(length: 255)]private ?string $name = null;#[ORM\Column(length: 255, nullable: true)]private ?string $icon = null;#[ORM\Column(length: 255, nullable: true)]private ?string $path = null;#[ORM\Column(type: Types::JSON)]private array $permissions = [];#[ORM\ManyToOne(targetEntity: self::class, inversedBy: 'modelSubmenus')]private ?self $parent = null;#[ORM\OneToMany(mappedBy: 'parent', targetEntity: self::class, cascade: ['all'], orphanRemoval: true)]private Collection $modelSubmenus;public function __construct(){$this->isActive = true;if (is_null($this->createdAt)) $this->createdAt = new DateTimeImmutable();$this->updatedAt = new DateTimeImmutable();$this->model = new ArrayCollection();$this->modelSubmenus = new ArrayCollection();}public function getId(): ?int{return $this->id;}/*** @return Collection<int, Model>*/public function getModel(): Collection{return $this->model;}public function addModel(Model $model): self{if (!$this->model->contains($model)) {$this->model->add($model);}return $this;}public function removeModel(Model $model): self{$this->model->removeElement($model);return $this;}public function getName(): ?string{return $this->name;}public function setName(string $name): self{$this->name = $name;return $this;}public function getIcon(): ?string{return $this->icon;}public function setIcon(?string $icon): self{$this->icon = $icon;return $this;}public function getPath(): ?string{return $this->path;}public function setPath(?string $path): self{$this->path = $path;return $this;}public function getPermissions(): array{return $this->permissions;}public function setPermissions(array $permissions): self{$this->permissions = $permissions;return $this;}public function getParent(): ?self{return $this->parent;}public function setParent(?self $parent): self{$this->parent = $parent;return $this;}/*** @return Collection<int, self>*/public function getModelSubmenus(): Collection{return $this->modelSubmenus;}public function addModelSubmenu(self $modelSubmenu): self{if (!$this->modelSubmenus->contains($modelSubmenu)) {$this->modelSubmenus->add($modelSubmenu);$modelSubmenu->setParent($this);}return $this;}public function removeModelSubmenu(self $modelSubmenu): self{if ($this->modelSubmenus->removeElement($modelSubmenu)) {// set the owning side to null (unless already changed)if ($modelSubmenu->getParent() === $this) {$modelSubmenu->setParent(null);}}return $this;}public function __toString(): string{return $this->name;}}