src/Entity/Lead.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Service\Helper\DateTimeHelper;
  4. use DateTime;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Exception;
  7. /**
  8.  * @ORM\Table(name="leads__leads",
  9.  *     indexes={
  10.  *          @ORM\Index(columns={"phone"}),
  11.  *          @ORM\Index(columns={"transmission_time"})
  12.  *     })
  13.  * @ORM\Entity(repositoryClass="App\Repository\LeadRepository")
  14.  */
  15. class Lead
  16. {
  17.     use IdTrait;
  18.     /**
  19.      * @ORM\Column(name="created_at", type="datetime")
  20.      */
  21.     private DateTime $createdAt;
  22.     /**
  23.      * @ORM\Column(name="canceled_at", type="datetime", nullable=true)
  24.      */
  25.     private ?DateTime $canceledAt null;
  26.     /**
  27.      * @ORM\Column(name="transmission_time", type="datetime", nullable=true)
  28.      */
  29.     private ?DateTime $transmissionTime null;
  30.     /**
  31.      * @ORM\Column(name="phone", type="string", length=12)
  32.      */
  33.     private string $phone;
  34.     /**
  35.      * @ORM\Column(name="car_brand", type="string", nullable=true)
  36.      */
  37.     private ?string $carBrand null;
  38.     /**
  39.      * @ORM\Column(name="car_model", type="string", nullable=true)
  40.      */
  41.     private ?string $carModel null;
  42.     /**
  43.      * @ORM\Column(name="car_vin", type="string", nullable=true)
  44.      */
  45.     private ?string $carVin null;
  46.     /**
  47.      * @ORM\Column(name="town_name", type="string", nullable=true)
  48.      */
  49.     private ?string $townName null;
  50.     /**
  51.      * @ORM\ManyToOne(targetEntity="Customer")
  52.      * @ORM\JoinColumn(name="customer_id", referencedColumnName="id", nullable=false)
  53.      **/
  54.     private Customer $customer;
  55.     /**
  56.      * @ORM\ManyToOne(targetEntity="User")
  57.      * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false)
  58.      **/
  59.     private User $user;
  60.     /**
  61.      * @ORM\OneToOne(targetEntity="MangoCall")
  62.      * @ORM\JoinColumn(name="mango_call_id", referencedColumnName="id", nullable=true)
  63.      **/
  64.     private ?MangoCall $mangoCall;
  65.     /**
  66.      * @ORM\OneToOne(targetEntity="Order")
  67.      * @ORM\JoinColumn(name="order_id", referencedColumnName="id", nullable=true)
  68.      **/
  69.     private ?Order $order;
  70.     /**
  71.      * @ORM\Column(name="comment", type="text", nullable=true)
  72.      */
  73.     private ?string $comment;
  74.     /**
  75.      * @ORM\Column(name="confirmed", type="boolean", options={"default":1})
  76.      */
  77.     private bool $confirmed true;
  78.     /**
  79.      * @ORM\Column(name="deprecated_order_id", type="integer", nullable=true, unique=true)
  80.      */
  81.     private ?int $deprecatedOrderId null;
  82.     /**
  83.      * @throws Exception
  84.      */
  85.     public function __construct(
  86.         string $phone,
  87.         Customer $customer,
  88.         User $user,
  89.         ?MangoCall $mangoCall
  90.     )
  91.     {
  92.         $this->phone $phone;
  93.         $this->customer $customer;
  94.         $this->user $user;
  95.         $this->mangoCall $mangoCall;
  96.         $this->createdAt DateTimeHelper::getNowDateTime();
  97.     }
  98.     public function getUser(): User
  99.     {
  100.         return $this->user;
  101.     }
  102.     public function getCreatedAt(): DateTime
  103.     {
  104.         return $this->createdAt;
  105.     }
  106.     public function getPhone(): ?string
  107.     {
  108.         return $this->phone;
  109.     }
  110.     public function getCustomerFirstName(): string
  111.     {
  112.         return $this->customer->getFirstName();
  113.     }
  114.     public function getCustomerFatherName(): string
  115.     {
  116.         return $this->customer->getFatherName();
  117.     }
  118.     public function getCustomerSureName(): string
  119.     {
  120.         return $this->customer->getSureName();
  121.     }
  122.     public function getCustomer(): Customer
  123.     {
  124.         return $this->customer;
  125.     }
  126.     public function getComment(): ?string
  127.     {
  128.         return $this->comment;
  129.     }
  130.     public function setComment(?string $comment): Lead
  131.     {
  132.         $this->comment $comment;
  133.         return $this;
  134.     }
  135.     public function getCarBrand(): ?string
  136.     {
  137.         return $this->carBrand;
  138.     }
  139.     public function setCarBrand(?string $carBrand): Lead
  140.     {
  141.         $this->carBrand $carBrand;
  142.         return $this;
  143.     }
  144.     public function getCarModel(): ?string
  145.     {
  146.         return $this->carModel;
  147.     }
  148.     public function setCarModel(?string $carModel): Lead
  149.     {
  150.         $this->carModel $carModel;
  151.         return $this;
  152.     }
  153.     public function getCarVin(): ?string
  154.     {
  155.         return $this->carVin;
  156.     }
  157.     public function setCarVin(?string $carVin): Lead
  158.     {
  159.         $this->carVin $carVin;
  160.         return $this;
  161.     }
  162.     public function setConfirmed(bool $confirmed): Lead
  163.     {
  164.         $this->confirmed $confirmed;
  165.         return $this;
  166.     }
  167.     public function getTownName(): ?string
  168.     {
  169.         return $this->townName;
  170.     }
  171.     public function setTownName(?string $townName): Lead
  172.     {
  173.         $this->townName $townName;
  174.         return $this;
  175.     }
  176.     public function getDeprecatedOrderId(): ?int
  177.     {
  178.         return $this->deprecatedOrderId;
  179.     }
  180.     public function setDeprecatedOrderId(?int $deprecatedOrderId): Lead
  181.     {
  182.         $this->deprecatedOrderId $deprecatedOrderId;
  183.         return $this;
  184.     }
  185.     public function getOrder(): ?Order
  186.     {
  187.         return $this->order;
  188.     }
  189.     public function getOrderId(): ?int
  190.     {
  191.         return $this->order?->getId();
  192.     }
  193.     public function setOrder(?Order $order): Lead
  194.     {
  195.         $this->order $order;
  196.         return $this;
  197.     }
  198. }