src/Entity/Product/SimilarProduct.php line 12

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Product;
  3. use App\Repository\Product\SimilarProductRepository;
  4. use Doctrine\ORM\Mapping as ORM;
  5. #[ORM\Entity(repositoryClassSimilarProductRepository::class)]
  6. #[ORM\Table(name'similar_product'uniqueConstraints: [
  7.     new ORM\UniqueConstraint(name'unique_similar'columns: ['product_id''similar_id'])
  8. ])]
  9. class SimilarProduct
  10. {
  11.     #[ORM\Id]
  12.     #[ORM\GeneratedValue]
  13.     #[ORM\Column]
  14.     private ?int $id null;
  15.     #[ORM\ManyToOne(targetEntityProduct::class, inversedBy'similarProducts')]
  16.     #[ORM\JoinColumn(nullablefalseonDelete'CASCADE')]
  17.     private ?Product $product null;
  18.     #[ORM\ManyToOne(targetEntityProduct::class, inversedBy'similarToProducts')]
  19.     #[ORM\JoinColumn(nullablefalseonDelete'CASCADE')]
  20.     private ?Product $similar null;
  21.     public function getId(): ?int
  22.     {
  23.         return $this->id;
  24.     }
  25.     public function getProduct(): ?Product
  26.     {
  27.         return $this->product;
  28.     }
  29.     public function setProduct(?Product $product): static
  30.     {
  31.         $this->product $product;
  32.         return $this;
  33.     }
  34.     public function getSimilar(): ?Product
  35.     {
  36.         return $this->similar;
  37.     }
  38.     public function setSimilar(?Product $similar): static
  39.     {
  40.         if ($this->product && $similar && $this->product === $similar) {
  41.             throw new \InvalidArgumentException("Un produit ne peut pas être similaire à lui-même.");
  42.         }
  43.         $this->similar $similar;
  44.         return $this;
  45.     }
  46. }