<?phpdeclare(strict_types=1);namespace Croisiland\CommonBundle\Entity\Cabin;use Crea\ToolsBundle\Entity\CreaIconIdentifiedInterface;use Crea\ToolsBundle\Entity\CreaIconTrait;use Crea\ToolsBundle\Entity\LifecycleUserIdentifierTrait;use Crea\ToolsBundle\Traits\KeyValueTrait;use Croisiland\CommonBundle\Entity\Traits\IsActiveTrait;use Croisiland\CommonBundle\Entity\Traits\ListOrderTrait;use Croisiland\CommonBundle\Repository\Cabin\CabinCategorySpecificityRepository;use Croisiland\CommonBundle\Annotation\Cabin\CabinCategorySpecificityFormValidator;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping as ORM;/** * @ORM\Entity(repositoryClass=CabinCategorySpecificityRepository::class) * @CabinCategorySpecificityFormValidator(groups={"cabin_category_specificity_form_validator"}) */class CabinCategorySpecificity implements CreaIconIdentifiedInterface{ use IsActiveTrait; use ListOrderTrait; use LifecycleUserIdentifierTrait; use CreaIconTrait; use KeyValueTrait; /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ private ?int $id = null; /** * @ORM\Column(type="string", length=255, nullable=false) */ private ?string $name = null; /** * @ORM\Column(type="text", nullable=true) */ private ?string $description = null; /** * @var Collection<int, CabinCategory> * @ORM\ManyToMany(targetEntity=CabinCategory::class, inversedBy="specificities") */ private Collection $cabinCategories; public function __construct() { $this->cabinCategories = new ArrayCollection(); } public function getId(): ?int { return $this->id; } public function getName(): ?string { return $this->name; } public function setName(string $name): self { $this->name = $name; return $this; } public function getDescription(): ?string { return $this->description; } public function setDescription(?string $description): self { $this->description = $description; return $this; } /** * @return Collection<int, CabinCategory> */ public function getCabinCategories(): Collection { return $this->cabinCategories; } public function addCabinCategory(CabinCategory $cabinCategory): self { if (!$this->cabinCategories->contains($cabinCategory)) { $this->cabinCategories[] = $cabinCategory; $cabinCategory->addSpecificity($this); } return $this; } public function removeCabinCategory(CabinCategory $cabinCategory): self { if ($this->cabinCategories->removeElement($cabinCategory)) { $cabinCategory->removeSpecificity($this); } return $this; } public function getIconLabel(): ?string { return $this->getName(); }}