src/Modules/TicketCart/Entity/TicketOrder.php line 16

  1. <?php
  2. namespace App\Modules\TicketCart\Entity;
  3. use App\Modules\User\Entity\User;
  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. use Gedmo\Mapping\Annotation as Gedmo;
  9. /**
  10.  * @ORM\Table(name="ticket_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 TicketOrder
  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 string
  85.      *
  86.      * @ORM\Column(name="total_price", type="decimal", precision=14, scale=2, nullable=false)
  87.      */
  88.     private $totalPrice;    
  89.     
  90.     /**
  91.      * @var \DateTime
  92.      *
  93.      * @ORM\Column(name="paid_at", type="datetime", nullable=true)
  94.      */
  95.     private $paidAt;    
  96.     
  97.     /**
  98.      * @var \DateTime
  99.      *
  100.      * @ORM\Column(name="added_at", type="datetime", nullable=false)
  101.      * @Gedmo\Timestampable(on="create")
  102.      */
  103.     private $addedAt;
  104.     /**
  105.      * @var \App\Modules\TicketCart\Entity\TicketOrderTicket
  106.      *
  107.      * @ORM\OneToMany(targetEntity="App\Modules\TicketCart\Entity\TicketOrderTicket", mappedBy="order", cascade={"persist"}, orphanRemoval=true)
  108.      */
  109.     private $tickets;
  110.     public function __construct()
  111.     {
  112.         $this->tickets = new ArrayCollection();
  113.     }
  114.     public function getId(): ?string
  115.     {
  116.         return $this->id;
  117.     }
  118.     public function getAdminCompanyName(): ?string
  119.     {
  120.         return $this->adminCompanyName;
  121.     }
  122.     public function setAdminCompanyName(string $adminCompanyName): self
  123.     {
  124.         $this->adminCompanyName $adminCompanyName;
  125.         return $this;
  126.     }
  127.     public function getFirstName(): ?string
  128.     {
  129.         return $this->firstName;
  130.     }
  131.     public function setFirstName(string $firstName): self
  132.     {
  133.         $this->firstName $firstName;
  134.         return $this;
  135.     }
  136.     public function getLastName(): ?string
  137.     {
  138.         return $this->lastName;
  139.     }
  140.     public function setLastName(string $lastName): self
  141.     {
  142.         $this->lastName $lastName;
  143.         return $this;
  144.     }
  145.     public function getEmail(): ?string
  146.     {
  147.         return $this->email;
  148.     }
  149.     public function setEmail(string $email): self
  150.     {
  151.         $this->email $email;
  152.         return $this;
  153.     }
  154.     public function getPhone(): ?string
  155.     {
  156.         return $this->phone;
  157.     }
  158.     public function setPhone(string $phone): self
  159.     {
  160.         $this->phone $phone;
  161.         return $this;
  162.     }
  163.     public function getCurrencyCode(): ?string
  164.     {
  165.         return $this->currencyCode;
  166.     }
  167.     public function setCurrencyCode(string $currencyCode): self
  168.     {
  169.         $this->currencyCode $currencyCode;
  170.         return $this;
  171.     }
  172.     public function getLang(): ?string
  173.     {
  174.         return $this->lang;
  175.     }
  176.     public function setLang(string $lang): self
  177.     {
  178.         $this->lang $lang;
  179.         return $this;
  180.     }
  181.     public function getOrderSiteUrl(): ?string
  182.     {
  183.         return $this->orderSiteUrl;
  184.     }
  185.     public function setOrderSiteUrl(?string $orderSiteUrl): self
  186.     {
  187.         $this->orderSiteUrl $orderSiteUrl;
  188.         return $this;
  189.     }
  190.     public function getPaidAt(): ?\DateTimeInterface
  191.     {
  192.         return $this->paidAt;
  193.     }
  194.     public function setPaidAt(?\DateTimeInterface $paidAt): self
  195.     {
  196.         $this->paidAt $paidAt;
  197.         return $this;
  198.     }
  199.     public function getAddedAt(): ?\DateTimeInterface
  200.     {
  201.         return $this->addedAt;
  202.     }
  203.     public function setAddedAt(\DateTimeInterface $addedAt): self
  204.     {
  205.         $this->addedAt $addedAt;
  206.         return $this;
  207.     }
  208.     public function getAdminUser(): ?User
  209.     {
  210.         return $this->adminUser;
  211.     }
  212.     public function setAdminUser(?User $adminUser): self
  213.     {
  214.         $this->adminUser $adminUser;
  215.         return $this;
  216.     }
  217.     /**
  218.      * @return Collection<int, TicketOrderTicket>
  219.      */
  220.     public function getTickets(): Collection
  221.     {
  222.         return $this->tickets;
  223.     }
  224.     public function addTicket(TicketOrderTicket $ticket): self
  225.     {
  226.         if (!$this->tickets->contains($ticket)) {
  227.             $this->tickets->add($ticket);
  228.             $ticket->setOrder($this);
  229.         }
  230.         return $this;
  231.     }
  232.     public function removeTicket(TicketOrderTicket $ticket): self
  233.     {
  234.         if ($this->tickets->removeElement($ticket)) {
  235.             // set the owning side to null (unless already changed)
  236.             if ($ticket->getOrder() === $this) {
  237.                 $ticket->setOrder(null);
  238.             }
  239.         }
  240.         return $this;
  241.     }
  242.     public function getTotalPrice(): ?string
  243.     {
  244.         return $this->totalPrice;
  245.     }
  246.     public function setTotalPrice(string $totalPrice): self
  247.     {
  248.         $this->totalPrice $totalPrice;
  249.         return $this;
  250.     }
  251. }