src/Flexy/ShopBundle/Entity/Product/AttributValue.php line 18

  1. <?php
  2. namespace App\Flexy\ShopBundle\Entity\Product;
  3. use ApiPlatform\Core\Annotation\ApiResource;
  4. use App\Flexy\ShopBundle\Repository\Product\AttributValueRepository;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Symfony\Component\Serializer\Annotation\Groups;
  9. #[ApiResource(
  10.     normalizationContext: ['groups' => ['read']],
  11.     denormalizationContext: ['groups' => ['write']],
  12.     
  13.     )]
  14. #[ORM\Entity(repositoryClassAttributValueRepository::class)]
  15. class AttributValue implements \Stringable
  16. {
  17.     #[ORM\Id]
  18.     #[ORM\GeneratedValue]
  19.     #[ORM\Column(type'integer')]
  20.     private $id;
  21.     #[ORM\Column(type'text'nullabletrue)]
  22.     private ?string $description null;
  23.     #[ORM\Column(type'datetime_immutable'nullabletrue)]
  24.     private ?\DateTimeImmutable $createdAt null;
  25.     #[ORM\ManyToOne(targetEntityAttribut::class, inversedBy'attributValues')]
  26.     #[Groups(['read''readDeep'])]
  27.     private ?\App\Flexy\ShopBundle\Entity\Product\Attribut $attribut null;
  28.     #[ORM\Column(type'string'length255,nullable:true)]
  29.     private ?string $value null;
  30.     #[ORM\ManyToOne(targetEntityProduct::class, inversedBy'attributValues'cascade: ['persist'])]
  31.     private ?\App\Flexy\ShopBundle\Entity\Product\Product $product null;
  32.     #[ORM\Column(type'float'nullabletrue)]
  33.     #[Groups(['read''readDeep'])]
  34.     private ?float $price null;
  35.     #[ORM\Column(type'integer'nullabletrue)]
  36.     private ?int $quantity null;
  37.     #[ORM\ManyToMany(targetEntityProductVariant::class, mappedBy'attributeValues')]
  38.     private \Doctrine\Common\Collections\Collection|array $productVariants;
  39.     public function __construct()
  40.     {
  41.         $this->productVariants = new ArrayCollection();
  42.     }
  43.     public function __toString(): string
  44.     {
  45.         return $this->attribut ." : "$this->value;
  46.     }
  47.     public function getId(): ?int
  48.     {
  49.         return $this->id;
  50.     }
  51.     public function getDescription(): ?string
  52.     {
  53.         return $this->description;
  54.     }
  55.     public function setDescription(?string $description): self
  56.     {
  57.         $this->description $description;
  58.         return $this;
  59.     }
  60.     public function getCreatedAt(): ?\DateTimeImmutable
  61.     {
  62.         return $this->createdAt;
  63.     }
  64.     public function setCreatedAt(?\DateTimeImmutable $createdAt): self
  65.     {
  66.         $this->createdAt $createdAt;
  67.         return $this;
  68.     }
  69.     public function getAttribut(): ?Attribut
  70.     {
  71.         return $this->attribut;
  72.     }
  73.     public function setAttribut(?Attribut $attribut): self
  74.     {
  75.         $this->attribut $attribut;
  76.         return $this;
  77.     }
  78.     public function getValue(): ?string
  79.     {
  80.         return $this->value;
  81.     }
  82.     public function setValue(string $value): self
  83.     {
  84.         $this->value $value;
  85.         return $this;
  86.     }
  87.     public function getProduct(): ?Product
  88.     {
  89.         return $this->product;
  90.     }
  91.     public function setProduct(?Product $product): self
  92.     {
  93.         $this->product $product;
  94.         return $this;
  95.     }
  96.     public function getPrice(): ?float
  97.     {
  98.         return $this->price;
  99.     }
  100.     public function setPrice(?float $price): self
  101.     {
  102.         $this->price $price;
  103.         return $this;
  104.     }
  105.     public function getQuantity(): ?int
  106.     {
  107.         return $this->quantity;
  108.     }
  109.     public function setQuantity(?int $quantity): self
  110.     {
  111.         $this->quantity $quantity;
  112.         return $this;
  113.     }
  114.     /**
  115.      * @return Collection|ProductVariant[]
  116.      */
  117.     public function getProductVariants(): Collection
  118.     {
  119.         return $this->productVariants;
  120.     }
  121.     public function addProductVariant(ProductVariant $productVariant): self
  122.     {
  123.         if (!$this->productVariants->contains($productVariant)) {
  124.             $this->productVariants[] = $productVariant;
  125.             $productVariant->addAttributeValue($this);
  126.         }
  127.         return $this;
  128.     }
  129.     public function removeProductVariant(ProductVariant $productVariant): self
  130.     {
  131.         if ($this->productVariants->removeElement($productVariant)) {
  132.             $productVariant->removeAttributeValue($this);
  133.         }
  134.         return $this;
  135.     }
  136.     #[Groups(['read''readDeep'])]
  137.     public function getAttributName(){
  138.         return $this->getAttribut()->getName();
  139.     }
  140. }