src/Entity/Gos/ProductPackMultiDiscount.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Gos;
  3. use App\Entity\Gos\ProductPack;
  4. use App\Enum\ProductPackMultiDiscountType;
  5. use Doctrine\ORM\Mapping as ORM;
  6. /**
  7.  * @ORM\Entity(repositoryClass=ProductPackMultiDiscountRepository::class)
  8.  * @ORM\HasLifecycleCallbacks()
  9.  */
  10. class ProductPackMultiDiscount implements MultiDiscountInterface
  11. {
  12.     /**
  13.      * @ORM\Id
  14.      * @ORM\GeneratedValue
  15.      * @ORM\Column(type="integer")
  16.      */
  17.     private $id;
  18.     /**
  19.      * @ORM\Column(type="datetime")
  20.      */
  21.     private $createdAt;
  22.     /**
  23.      * @ORM\Column(type="datetime", nullable=true)
  24.      */
  25.     private $updatedAt;
  26.     /**
  27.      * @ORM\Column(type="boolean", options={"default": 0})
  28.      */
  29.     private $isGross;
  30.     /**
  31.      * @ORM\Column(type="string", length=255)
  32.      */
  33.     private $discountType;
  34.     /**
  35.      * @ORM\Column(type="float", options={"default": 0})
  36.      */
  37.     private $discount;
  38.     /**
  39.      * @ORM\Column(type="integer", nullable=true)
  40.      */
  41.     private $minAmount;
  42.     /**
  43.      * @ORM\Column(type="integer", nullable=true)
  44.      */
  45.     private $maxAmount;
  46.     /**
  47.      * @ORM\ManyToOne(targetEntity=ProductPack::class, inversedBy="multiDiscounts")
  48.      * @ORM\JoinColumn(nullable=false)
  49.      */
  50.     private $productPack;
  51.     /**
  52.      * @ORM\PrePersist()
  53.      */
  54.     public function prePersist()
  55.     {
  56.         $this->createdAt = new \DateTime();
  57.     }
  58.     /**
  59.      * @ORM\PreUpdate()
  60.      */
  61.     public function preUpdate()
  62.     {
  63.         $this->updatedAt = new \DateTime();
  64.     }
  65.     public function __toString()
  66.     {
  67.         return (string)$this->id;
  68.     }
  69.     public function getId(): ?int
  70.     {
  71.         return $this->id;
  72.     }
  73.     public function setId(int $id): self
  74.     {
  75.         $this->id $id;
  76.         return $this;
  77.     }
  78.     public function setCreatedAt(\DateTime $createdAt): self
  79.     {
  80.         $this->createdAt $createdAt;
  81.         return $this;
  82.     }
  83.     public function getCreatedAt(): \DateTime
  84.     {
  85.         return $this->createdAt;
  86.     }
  87.     public function setUpdatedAt(\DateTime $updatedAt): self
  88.     {
  89.         $this->updatedAt $updatedAt;
  90.         return $this;
  91.     }
  92.     public function getUpdatedAt(): ?\DateTime
  93.     {
  94.         return $this->updatedAt;
  95.     }
  96.     public function getIsGross(): ?bool
  97.     {
  98.         return $this->isGross;
  99.     }
  100.     public function setIsGross(bool $isGross): self
  101.     {
  102.         $this->isGross $isGross;
  103.         return $this;
  104.     }
  105.     public function getDiscountType(): ?string
  106.     {
  107.         return $this->discountType;
  108.     }
  109.     public function setDiscountType(string $discountType): self
  110.     {
  111.         if (!in_array($discountType, array(ProductPackMultiDiscountType::AMOUNTProductPackMultiDiscountType::PERCENTAGE))) {
  112.             throw new \InvalidArgumentException("Invalid discount type");
  113.         }
  114.         $this->discountType $discountType;
  115.         return $this;
  116.     }
  117.     public function getDiscount(): ?float
  118.     {
  119.         return $this->discount;
  120.     }
  121.     public function setDiscount(float $discount): self
  122.     {
  123.         $this->discount $discount;
  124.         return $this;
  125.     }
  126.     public function getMinAmount(): ?int
  127.     {
  128.         return $this->minAmount;
  129.     }
  130.     public function setMinAmount(int $minAmount): self
  131.     {
  132.         $this->minAmount $minAmount;
  133.         return $this;
  134.     }
  135.     public function getMaxAmount(): ?int
  136.     {
  137.         return $this->maxAmount;
  138.     }
  139.     public function setMaxAmount(int $maxAmount): self
  140.     {
  141.         $this->maxAmount $maxAmount;
  142.         return $this;
  143.     }
  144.     public function getProductPack(): ?ProductPack
  145.     {
  146.         return $this->productPack;
  147.     }
  148.     public function setProductPack(?ProductPack $productPack): self
  149.     {
  150.         $this->productPack $productPack;
  151.         return $this;
  152.     }
  153. }