src/Modules/VoucherCart/Entity/VoucherOrder.php line 16

  1. <?php
  2. namespace App\Modules\VoucherCart\Entity;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\DBAL\Types\Types;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Gedmo\Mapping\Annotation as Gedmo;
  8. use App\Modules\User\Entity\User;
  9. /**
  10.  * @ORM\Table(name="voucher_order", indexes={@ORM\Index(columns={"admin_company_name"}), @ORM\Index(columns={"first_name"}), @ORM\Index(columns={"last_name"}), @ORM\Index(columns={"email"}), @ORM\Index(columns={"paid_at"}), @ORM\Index(columns={"added_at"})})
  11.  * @ORM\Entity
  12.  */
  13. class VoucherOrder
  14. {
  15.     /**
  16.      * @var int
  17.      *
  18.      * @ORM\Column(type="bigint", options={"unsigned"=true}))
  19.      * @ORM\Id
  20.      * @ORM\GeneratedValue(strategy="AUTO")
  21.      */
  22.     private $id;
  23.     
  24.     /**
  25.      * @var \App\Modules\User\Entity\User
  26.      *
  27.      * @ORM\ManyToOne(targetEntity="App\Modules\User\Entity\User")
  28.      * @ORM\JoinColumns({
  29.      *   @ORM\JoinColumn(name="id_admin_user", referencedColumnName="id", nullable=true, onDelete="SET NULL")
  30.      * })
  31.      */
  32.     private $adminUser;
  33.     
  34.     /**
  35.      * @var string
  36.      *
  37.      * @ORM\Column(name="admin_company_name", type="string", length=255, nullable=false, options={"collation"="utf8_unicode_ci"})
  38.      */
  39.     private $adminCompanyName;    
  40.     /**
  41.      * @var string
  42.      *
  43.      * @ORM\Column(name="first_name", type="string", length=255, nullable=false, options={"collation"="utf8_unicode_ci"})
  44.      */
  45.     private $firstName;
  46.     /**
  47.      * @var string
  48.      *
  49.      * @ORM\Column(name="last_name", type="string", length=255, nullable=false, options={"collation"="utf8_unicode_ci"})
  50.      */
  51.     private $lastName;
  52.     /**
  53.      * @var string
  54.      *
  55.      * @ORM\Column(name="email", type="string", length=255, nullable=false)
  56.      */
  57.     private $email;
  58.     /**
  59.      * @var string
  60.      *
  61.      * @ORM\Column(name="phone", type="string", length=25, nullable=false)
  62.      */
  63.     private $phone;
  64.     /**
  65.      * @var string
  66.      *
  67.      * @ORM\Column(name="currency_code", type="string", length=3, nullable=false)
  68.      */
  69.     private $currencyCode;
  70.     /**
  71.      * @var string
  72.      *
  73.      * @ORM\Column(name="lang", type="string", length=2, nullable=false)
  74.      */
  75.     private $lang;
  76.     /**
  77.      * @var string
  78.      *
  79.      * @ORM\Column(name="order_site_url", type="string", length=1024, nullable=true)
  80.      */
  81.     private $orderSiteUrl;
  82.     
  83.     /**
  84.      * @var \DateTime
  85.      *
  86.      * @ORM\Column(name="paid_at", type="datetime", nullable=true)
  87.      */
  88.     private $paidAt;    
  89.     
  90.     /**
  91.      * @var \DateTime
  92.      *
  93.      * @ORM\Column(name="added_at", type="datetime", nullable=false)
  94.      * @Gedmo\Timestampable(on="create")
  95.      */
  96.     private $addedAt;
  97.     /**
  98.      * @var \App\Modules\VoucherCart\Entity\VoucherOrderVoucher
  99.      *
  100.      * @ORM\OneToMany(targetEntity="App\Modules\VoucherCart\Entity\VoucherOrderVoucher", mappedBy="order", cascade={"persist"}, orphanRemoval=true)
  101.      */
  102.     private $vouchers;
  103.     
  104.     public function __construct()
  105.     {
  106.         $this->vouchers = new ArrayCollection();
  107.     }
  108.     public function getId(): ?string
  109.     {
  110.         return $this->id;
  111.     }
  112.     public function getOrderSiteUrl(): ?string
  113.     {
  114.         return $this->orderSiteUrl;
  115.     }
  116.     public function setOrderSiteUrl(?string $orderSiteUrl): self
  117.     {
  118.         $this->orderSiteUrl $orderSiteUrl;
  119.         return $this;
  120.     }
  121.     public function getPaidAt(): ?\DateTimeInterface
  122.     {
  123.         return $this->paidAt;
  124.     }
  125.     public function setPaidAt(?\DateTimeInterface $paidAt): self
  126.     {
  127.         $this->paidAt $paidAt;
  128.         return $this;
  129.     }
  130.     public function getAddedAt(): ?\DateTimeInterface
  131.     {
  132.         return $this->addedAt;
  133.     }
  134.     public function setAddedAt(\DateTimeInterface $addedAt): self
  135.     {
  136.         $this->addedAt $addedAt;
  137.         return $this;
  138.     }
  139.     /**
  140.      * @return Collection<int, VoucherOrderVoucher>
  141.      */
  142.     public function getVouchers(): Collection
  143.     {
  144.         return $this->vouchers;
  145.     }
  146.     public function addVoucher(VoucherOrderVoucher $voucher): self
  147.     {
  148.         if (!$this->vouchers->contains($voucher)) {
  149.             $this->vouchers->add($voucher);
  150.             $voucher->setOrder($this);
  151.         }
  152.         return $this;
  153.     }
  154.     public function removeVoucher(VoucherOrderVoucher $voucher): self
  155.     {
  156.         if ($this->vouchers->removeElement($voucher)) {
  157.             // set the owning side to null (unless already changed)
  158.             if ($voucher->getOrder() === $this) {
  159.                 $voucher->setOrder(null);
  160.             }
  161.         }
  162.         return $this;
  163.     }
  164.     public function getAdminUser(): ?User
  165.     {
  166.         return $this->adminUser;
  167.     }
  168.     public function setAdminUser(?User $adminUser): self
  169.     {
  170.         $this->adminUser $adminUser;
  171.         return $this;
  172.     }
  173.     public function getAdminCompanyName(): ?string
  174.     {
  175.         return $this->adminCompanyName;
  176.     }
  177.     public function setAdminCompanyName(string $adminCompanyName): self
  178.     {
  179.         $this->adminCompanyName $adminCompanyName;
  180.         return $this;
  181.     }
  182.     public function getFirstName(): ?string
  183.     {
  184.         return $this->firstName;
  185.     }
  186.     public function setFirstName(string $firstName): self
  187.     {
  188.         $this->firstName $firstName;
  189.         return $this;
  190.     }
  191.     public function getLastName(): ?string
  192.     {
  193.         return $this->lastName;
  194.     }
  195.     public function setLastName(string $lastName): self
  196.     {
  197.         $this->lastName $lastName;
  198.         return $this;
  199.     }
  200.     public function getEmail(): ?string
  201.     {
  202.         return $this->email;
  203.     }
  204.     public function setEmail(string $email): self
  205.     {
  206.         $this->email $email;
  207.         return $this;
  208.     }
  209.     public function getPhone(): ?string
  210.     {
  211.         return $this->phone;
  212.     }
  213.     public function setPhone(string $phone): self
  214.     {
  215.         $this->phone $phone;
  216.         return $this;
  217.     }
  218.     public function getCurrencyCode(): ?string
  219.     {
  220.         return $this->currencyCode;
  221.     }
  222.     public function setCurrencyCode(string $currencyCode): self
  223.     {
  224.         $this->currencyCode $currencyCode;
  225.         return $this;
  226.     }
  227.     public function getLang(): ?string
  228.     {
  229.         return $this->lang;
  230.     }
  231.     public function setLang(string $lang): self
  232.     {
  233.         $this->lang $lang;
  234.         return $this;
  235.     }    
  236. }