src/Flexy/ShopBundle/Entity/Product/Attribut.php line 13

  1. <?php
  2. namespace App\Flexy\ShopBundle\Entity\Product;
  3. use ApiPlatform\Core\Annotation\ApiResource;
  4. use App\Flexy\ShopBundle\Repository\Product\AttributRepository;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. #[ApiResource]
  9. #[ORM\Entity(repositoryClassAttributRepository::class)]
  10. class Attribut implements \Stringable
  11. {
  12.     #[ORM\Id]
  13.     #[ORM\GeneratedValue]
  14.     #[ORM\Column(type'integer')]
  15.     private $id;
  16.     #[ORM\Column(type'text'nullabletrue)]
  17.     private ?string $description null;
  18.     #[ORM\Column(type'datetime_immutable'nullabletrue)]
  19.     private ?\DateTimeImmutable $createdAt null;
  20.     #[ORM\Column(type'string'length255)]
  21.     private ?string $name null;
  22.     #[ORM\Column(type'string'length255nullabletrue)]
  23.     private ?string $type "text";
  24.     #[ORM\OneToMany(targetEntityAttributValue::class, mappedBy'attribut')]
  25.     private \Doctrine\Common\Collections\Collection|array $attributValues;
  26.     #[ORM\ManyToMany(targetEntityCategoryProduct::class, mappedBy'attributes')]
  27.     private \Doctrine\Common\Collections\Collection|array $categoriesProduct;
  28.     public function __construct()
  29.     {
  30.         $this->attributValues = new ArrayCollection();
  31.         $this->categoriesProduct = new ArrayCollection();
  32.     }
  33.     public function __toString(): string
  34.     {
  35.         return (string) $this->name;
  36.     }
  37.     public function getId(): ?int
  38.     {
  39.         return $this->id;
  40.     }
  41.     public function getDescription(): ?string
  42.     {
  43.         return $this->description;
  44.     }
  45.     public function setDescription(?string $description): self
  46.     {
  47.         $this->description $description;
  48.         return $this;
  49.     }
  50.     public function getCreatedAt(): ?\DateTimeImmutable
  51.     {
  52.         return $this->createdAt;
  53.     }
  54.     public function setCreatedAt(?\DateTimeImmutable $createdAt): self
  55.     {
  56.         $this->createdAt $createdAt;
  57.         return $this;
  58.     }
  59.     public function getName(): ?string
  60.     {
  61.         return $this->name;
  62.     }
  63.     public function setName(string $name): self
  64.     {
  65.         $this->name $name;
  66.         return $this;
  67.     }
  68.     public function getType(): ?string
  69.     {
  70.         return $this->type;
  71.     }
  72.     public function setType(?string $type): self
  73.     {
  74.         $this->type $type;
  75.         return $this;
  76.     }
  77.     /**
  78.      * @return Collection|AttributValue[]
  79.      */
  80.     public function getAttributValues(): Collection
  81.     {
  82.         return $this->attributValues;
  83.     }
  84.     public function addAttributValue(AttributValue $attributValue): self
  85.     {
  86.         if (!$this->attributValues->contains($attributValue)) {
  87.             $this->attributValues[] = $attributValue;
  88.             $attributValue->setAttribut($this);
  89.         }
  90.         return $this;
  91.     }
  92.     public function removeAttributValue(AttributValue $attributValue): self
  93.     {
  94.         if ($this->attributValues->removeElement($attributValue)) {
  95.             // set the owning side to null (unless already changed)
  96.             if ($attributValue->getAttribut() === $this) {
  97.                 $attributValue->setAttribut(null);
  98.             }
  99.         }
  100.         return $this;
  101.     }
  102.     /**
  103.      * @return Collection|CategoryProduct[]
  104.      */
  105.     public function getCategoriesProduct(): Collection
  106.     {
  107.         return $this->categoriesProduct;
  108.     }
  109.     public function addCategoriesProduct(CategoryProduct $categoriesProduct): self
  110.     {
  111.         if (!$this->categoriesProduct->contains($categoriesProduct)) {
  112.             $this->categoriesProduct[] = $categoriesProduct;
  113.             $categoriesProduct->addAttribute($this);
  114.         }
  115.         return $this;
  116.     }
  117.     public function removeCategoriesProduct(CategoryProduct $categoriesProduct): self
  118.     {
  119.         if ($this->categoriesProduct->removeElement($categoriesProduct)) {
  120.             $categoriesProduct->removeAttribute($this);
  121.         }
  122.         return $this;
  123.     }
  124. }