<?phpnamespace App\Entity;use App\Entity\Enum\ItemType;use App\Entity\Traits\Identifiable;use App\Entity\Traits\Sortable;use App\Repository\ItemRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping as ORM;#[ORM\Entity(repositoryClass: ItemRepository::class)]class Item{ use Identifiable; use Sortable; #[ORM\Column(type: 'string', length: 10, enumType: ItemType::class)] private $type; #[ORM\Column(type: 'string', length: 100)] private $name; #[ORM\Column(type: 'smallint')] private $price; #[ORM\OneToMany(mappedBy: 'item', targetEntity: ItemVariation::class, cascade: ['persist'])] private $variations; #[ORM\OneToOne(targetEntity: FileItem::class, cascade: ['persist', 'remove'])] private $file; #[ORM\Column(type: 'boolean')] private $isDisplayed = true; public function __construct() { $this->variations = new ArrayCollection(); } public function getType(): ?ItemType { return $this->type; } public function setType(ItemType $type): self { $this->type = $type; return $this; } public function getName(): ?string { return $this->name; } public function setName(string $name): self { $this->name = $name; return $this; } public function getPrice(): ?int { return $this->price; } public function setPrice(int $price): self { $this->price = $price; return $this; } /** * @return Collection<int, ItemVariation> */ public function getVariations(): Collection { return $this->variations; } public function addVariation(ItemVariation $variation): self { if (!$this->variations->contains($variation)) { $this->variations[] = $variation; $variation->setItem($this); } return $this; } public function removeVariation(ItemVariation $variation): self { if ($this->variations->removeElement($variation)) { // set the owning side to null (unless already changed) if ($variation->getItem() === $this) { $variation->setItem(null); } } return $this; } public function getFile(): ?FileItem { return $this->file; } public function setFile(?FileItem $file): self { $this->file = $file; return $this; } public function getIsDisplayed(): ?bool { return $this->isDisplayed; } public function setIsDisplayed(bool $isDisplayed): self { $this->isDisplayed = $isDisplayed; return $this; }}