src/Entity/Coupon.php line 12

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\Common\Collections\Collection;
  4. use Doctrine\ORM\Mapping as ORM;
  5. /**
  6.  * @ORM\Entity(repositoryClass="App\Repository\CouponRepository")
  7.  */
  8. class Coupon
  9. {
  10.     /**
  11.      * @ORM\Id
  12.      * @ORM\GeneratedValue
  13.      * @ORM\Column(type="integer")
  14.      */
  15.     private $id;
  16.     /**
  17.      * @ORM\Column(type="boolean")
  18.      */
  19.     private $isGeneratedPromoCode;
  20.     /**
  21.      * @ORM\Column(type="string", length=10, nullable=false)
  22.      */
  23.     private $promoCode;
  24.     /**
  25.      * @ORM\Column(type="datetime", nullable=false)
  26.      */
  27.     private $expiresAt;
  28.     /**
  29.      * @ORM\Column(type="integer")
  30.      */
  31.     private $limitUses;
  32.     /**
  33.      * @ORM\Column(type="datetime")
  34.      */
  35.     private $createdAt;
  36.     /**
  37.      * @ORM\Column(type="datetime", nullable=true)
  38.      */
  39.     private $updatedAt;
  40.     /**
  41.      * @ORM\ManyToMany(targetEntity="App\Entity\Customer")
  42.      * @ORM\JoinTable(name="coupon_customer")
  43.      */
  44.     private $customers;
  45.     
  46.     /**
  47.      * @ORM\OneToMany(targetEntity="App\Entity\CouponCustomer", mappedBy="coupon", orphanRemoval=true)
  48.      */
  49.     private $couponCustomers;
  50.     /**
  51.      * @var integer
  52.      */
  53.     private $activatedUses;
  54.     /**
  55.      * @return mixed
  56.      */
  57.     public function getId()
  58.     {
  59.         return $this->id;
  60.     }
  61.     /**
  62.      * @return mixed
  63.      */
  64.     public function getPromoCode()
  65.     {
  66.         return $this->promoCode;
  67.     }
  68.     /**
  69.      * @param mixed $promoCode
  70.      * @return Coupon
  71.      */
  72.     public function setPromoCode($promoCode)
  73.     {
  74.         $this->promoCode $promoCode;
  75.         return $this;
  76.     }
  77.     /**
  78.      * @return mixed
  79.      */
  80.     public function getIsGeneratedPromoCode()
  81.     {
  82.         return $this->isGeneratedPromoCode;
  83.     }
  84.     /**
  85.      * @param $isGeneratedPromoCode
  86.      * @return Coupon
  87.      */
  88.     public function setIsGeneratedPromoCode($isGeneratedPromoCode)
  89.     {
  90.         $this->isGeneratedPromoCode $isGeneratedPromoCode;
  91.         return $this;
  92.     }
  93.     /**
  94.      * @return mixed
  95.      */
  96.     public function getExpiresAt()
  97.     {
  98.         return $this->expiresAt;
  99.     }
  100.     /**
  101.      * @param mixed $expiresAt
  102.      * @return Coupon
  103.      */
  104.     public function setExpiresAt($expiresAt)
  105.     {
  106.         $this->expiresAt $expiresAt;
  107.         return $this;
  108.     }
  109.     /**
  110.      * @return mixed
  111.      */
  112.     public function getLimitUses()
  113.     {
  114.         return $this->limitUses;
  115.     }
  116.     /**
  117.      * @param mixed $limitUses
  118.      * @return Coupon
  119.      */
  120.     public function setLimitUses($limitUses)
  121.     {
  122.         $this->limitUses $limitUses;
  123.         return $this;
  124.     }
  125.     /**
  126.      * @return mixed
  127.      */
  128.     public function getCreatedAt()
  129.     {
  130.         return $this->createdAt;
  131.     }
  132.     /**
  133.      * @param mixed $createdAt
  134.      * @return Coupon
  135.      */
  136.     public function setCreatedAt($createdAt)
  137.     {
  138.         $this->createdAt $createdAt;
  139.         return $this;
  140.     }
  141.     /**
  142.      * @return mixed
  143.      */
  144.     public function getUpdatedAt()
  145.     {
  146.         return $this->updatedAt;
  147.     }
  148.     /**
  149.      * @param mixed $updatedAt
  150.      * @return Coupon
  151.      */
  152.     public function setUpdatedAt($updatedAt)
  153.     {
  154.         $this->updatedAt $updatedAt;
  155.         return $this;
  156.     }
  157.     /**
  158.      * @return mixed
  159.      */
  160.     public function __toString()
  161.     {
  162.         return self::getPromoCode();
  163.     }
  164.     /**
  165.      * @return Collection
  166.      */
  167.     public function getCustomers(): ?Collection
  168.     {
  169.         return $this->customers;
  170.     }
  171.     /**
  172.      * @return Collection
  173.      */
  174.     public function setCustomers(Collection $customers): void
  175.     {
  176.         $this->customers $customers;
  177.     }
  178.     public function addCustomer($customer): self
  179.     {
  180.         if ( ! $this->customers->contains($customer)) {
  181.             $this->customers[] = $customer;
  182.         }
  183.         return $this;
  184.     }
  185.     
  186.     public function removeCustomer($customer): self
  187.     {
  188.         $this->customers->removeElement($customer);
  189.         return $this;
  190.     }
  191.     
  192.     /**
  193.      * @return Collection
  194.      */
  195.     public function getCouponCustomers(): ?Collection
  196.     {
  197.         return $this->couponCustomers;
  198.     }
  199.     /**
  200.      * @return Collection
  201.      */
  202.     public function setCouponCustomers(Collection $couponCustomers): void
  203.     {
  204.         $this->couponCustomers $couponCustomers;
  205.     }
  206.     /**
  207.      * @return int
  208.      */
  209.     public function getActivatedUses(): int
  210.     {
  211.         return count($this->couponCustomers);
  212.     }
  213.     /**
  214.      * @param int $activatedUses
  215.      */
  216.     public function setActivatedUses(int $activatedUses): void
  217.     {
  218.         $this->activatedUses $activatedUses;
  219.     }
  220. }