src/Entity/Product.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\ProductRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\DBAL\Types\Types;
  7. use Doctrine\ORM\Mapping as ORM;
  8. #[ORM\Entity(repositoryClassProductRepository::class)]
  9. #[ORM\Table(name"products")]
  10. class Product
  11. {
  12.     //Виды сортировок грида товаров
  13.     const SORT_PRODUCTS_DEFAULT 0;
  14.     const SORT_PRODUCTS_PRICE_DOWN 1;
  15.     const SORT_PRODUCTS_PRICE_UP 2;
  16.     const SORT_PRODUCTS_VIEWS 3;
  17.     const SORT_PRODUCTS_BOUGHT 4;
  18.     // Статусы товара
  19.     const STATUS_PRODUCTS_ACTUAL 1;
  20.     const STATUS_PRODUCTS_ON_VERIFICATION 2;
  21.     const STATUS_PRODUCTS_NOT_ACTUAL 3;
  22.     const STATUS_PRODUCTS_DECLINED 4;
  23.     #[ORM\Id]
  24.     #[ORM\GeneratedValue]
  25.     #[ORM\Column]
  26.     private ?int $id null;
  27.     #[ORM\Column(length255)]
  28.     private ?string $title null;
  29.     #[ORM\Column(length255)]
  30.     private ?string $description null;
  31.     #[ORM\Column(name"stock_depth")]
  32.     private ?int $stockDepth null;
  33.     #[ORM\Column(name"likes")]
  34.     private ?int $likes null;
  35.     #[ORM\Column(name"views")]
  36.     private ?int $views null;
  37.     #[ORM\Column(name"bought")]
  38.     private ?int $bought null;
  39.     #[ORM\OneToMany(mappedBy'product'targetEntityImagePath::class)]
  40.     private Collection $images;
  41.     #[ORM\ManyToOne]
  42.     #[ORM\JoinColumn(nullablefalse)]
  43.     private ?GroupProducts $groupsProduct null;
  44.     #[ORM\ManyToOne]
  45.     #[ORM\JoinColumn(nullablefalse)]
  46.     private ?MaterialProducts $materialProduct null;
  47.     #[ORM\Column]
  48.     private float $price 0;
  49.     #[ORM\Column(typeTypes::TEXT)]
  50.     private string $tags '';
  51.     #[ORM\Column]
  52.     private float $priceForSeller 0;
  53.     #[ORM\OneToMany(mappedBy'product'targetEntityProductsSizes::class, orphanRemovaltrue)]
  54.     private Collection $productsSizes;
  55.     #[ORM\ManyToOne(inversedBy'products')]
  56.     #[ORM\JoinColumn(nullablefalse)]
  57.     private ?User $seller null;
  58.     #[ORM\Column]
  59.     private int $status self::STATUS_PRODUCTS_ACTUAL;
  60.     public function __construct()
  61.     {
  62.         $this->images = new ArrayCollection();
  63.         $this->productsSizes = new ArrayCollection();
  64.     }
  65.     public function getId(): ?int
  66.     {
  67.         return $this->id;
  68.     }
  69.     public function getTitle(): ?string
  70.     {
  71.         return $this->title;
  72.     }
  73.     public function setTitle(string $title): self
  74.     {
  75.         $this->title $title;
  76.         return $this;
  77.     }
  78.     public function getDescription(): ?string
  79.     {
  80.         return $this->description;
  81.     }
  82.     public function setDescription(string $description): self
  83.     {
  84.         $this->description $description;
  85.         return $this;
  86.     }
  87.     public function getStockDepth(): ?int
  88.     {
  89.         return $this->stockDepth;
  90.     }
  91.     public function setStockDepth(int $stockDepth): self
  92.     {
  93.         $this->stockDepth $stockDepth;
  94.         return $this;
  95.     }
  96.     /**
  97.      * @return int|null
  98.      */
  99.     public function getLikes(): ?int
  100.     {
  101.         return $this->likes;
  102.     }
  103.     /**
  104.      * @param int|null $likes
  105.      */
  106.     public function setLikes(?int $likes): void
  107.     {
  108.         $this->likes $likes;
  109.     }
  110.     /**
  111.      * @return int|null
  112.      */
  113.     public function getViews(): ?int
  114.     {
  115.         return $this->views;
  116.     }
  117.     /**
  118.      * @param int|null $views
  119.      */
  120.     public function setViews(?int $views): void
  121.     {
  122.         $this->views $views;
  123.     }
  124.     /**
  125.      * @return int|null
  126.      */
  127.     public function getBought(): ?int
  128.     {
  129.         return $this->bought;
  130.     }
  131.     /**
  132.      * @param int|null $bought
  133.      */
  134.     public function setBought(?int $bought): void
  135.     {
  136.         $this->bought $bought;
  137.     }
  138.     /**
  139.      * @return int|null
  140.      */
  141.     public function getGroupId(): ?int
  142.     {
  143.         return $this->groupId;
  144.     }
  145.     /**
  146.      * @param int|null $groupId
  147.      */
  148.     public function setGroupId(?int $groupId): void
  149.     {
  150.         $this->groupId $groupId;
  151.     }
  152.     /**
  153.      * @return int|null
  154.      */
  155.     public function getMaterialId(): ?int
  156.     {
  157.         return $this->materialId;
  158.     }
  159.     /**
  160.      * @param int|null $materialId
  161.      */
  162.     public function setMaterialId(?int $materialId): void
  163.     {
  164.         $this->materialId $materialId;
  165.     }
  166.     /**
  167.      * @return Collection<int, ImagePath>
  168.      */
  169.     public function getImages(): Collection
  170.     {
  171.         return $this->images;
  172.     }
  173.     public function addImage(ImagePath $image): self
  174.     {
  175.         if (!$this->images->contains($image)) {
  176.             $this->images->add($image);
  177.             $image->setProduct($this);
  178.         }
  179.         return $this;
  180.     }
  181.     public function removeImage(ImagePath $image): self
  182.     {
  183.         if ($this->images->removeElement($image)) {
  184.             // set the owning side to null (unless already changed)
  185.             if ($image->getProduct() === $this) {
  186.                 $image->setProduct(null);
  187.             }
  188.         }
  189.         return $this;
  190.     }
  191.     public function getGroupsProduct(): ?GroupProducts
  192.     {
  193.         return $this->groupsProduct;
  194.     }
  195.     public function setGroupsProduct(?GroupProducts $groupsProduct): self
  196.     {
  197.         $this->groupsProduct $groupsProduct;
  198.         return $this;
  199.     }
  200.     public function getMaterialProduct(): ?MaterialProducts
  201.     {
  202.         return $this->materialProduct;
  203.     }
  204.     public function setMaterialProduct(?MaterialProducts $materialProduct): self
  205.     {
  206.         $this->materialProduct $materialProduct;
  207.         return $this;
  208.     }
  209.     public function getPrice(): float
  210.     {
  211.         return $this->price;
  212.     }
  213.     public function setPrice(float $price): self
  214.     {
  215.         $this->price $price;
  216.         return $this;
  217.     }
  218.     public function getTags(): string
  219.     {
  220.         return $this->tags;
  221.     }
  222.     public function setTags(string $tags): self
  223.     {
  224.         $this->tags $tags;
  225.         return $this;
  226.     }
  227.     public function getPriceForSeller(): float
  228.     {
  229.         return $this->priceForSeller;
  230.     }
  231.     public function setPriceForSeller(float $priceForSeller): self
  232.     {
  233.         $this->priceForSeller $priceForSeller;
  234.         return $this;
  235.     }
  236.     /**
  237.      * @return Collection<int, ProductsSizes>
  238.      */
  239.     public function getProductsSizes(): Collection
  240.     {
  241.         return $this->productsSizes;
  242.     }
  243.     public function addProductsSize(ProductsSizes $productsSize): self
  244.     {
  245.         if (!$this->productsSizes->contains($productsSize)) {
  246.             $this->productsSizes->add($productsSize);
  247.             $productsSize->setProduct($this);
  248.         }
  249.         return $this;
  250.     }
  251.     public function removeProductsSize(ProductsSizes $productsSize): self
  252.     {
  253.         if ($this->productsSizes->removeElement($productsSize)) {
  254.             // set the owning side to null (unless already changed)
  255.             if ($productsSize->getProduct() === $this) {
  256.                 $productsSize->setProduct(null);
  257.             }
  258.         }
  259.         return $this;
  260.     }
  261.     public function getSeller(): ?User
  262.     {
  263.         return $this->seller;
  264.     }
  265.     public function setSeller(?User $seller): self
  266.     {
  267.         $this->seller $seller;
  268.         return $this;
  269.     }
  270.     public function getStatus(): ?int
  271.     {
  272.         return $this->status;
  273.     }
  274.     public function setStatus(int $status): static
  275.     {
  276.         $this->status $status;
  277.         return $this;
  278.     }
  279.     public function isActual(): bool
  280.     {
  281.         return $this->status === self::STATUS_PRODUCTS_ACTUAL;
  282.     }
  283. }