src/Entity/ProspectOnStoreQualification.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\Enum\QualificationServiceEnum;
  4. use App\Repository\ProspectOnStoreQualificationRepository;
  5. use App\Entity\Enum\QualificationStateEnum;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Gedmo\Mapping\Annotation as Gedmo;
  8. use ApiPlatform\Core\Annotation\ApiResource;
  9. use Symfony\Component\Serializer\Annotation\Groups;
  10. /**
  11.  * @ORM\Entity(repositoryClass=ProspectOnStoreQualificationRepository::class)
  12.  * @ORM\EntityListeners({"App\Listener\ProspectOnStoreQualificationListener"})
  13.  *
  14.  * @ApiResource(
  15.  *      itemOperations={"get"},
  16.  *      normalizationContext={"groups"={"posq:read"}},
  17.  *      denormalizationContext={"groups"={"posq:write"}}
  18.  *  )
  19.  */
  20. class ProspectOnStoreQualification
  21. {
  22.     /**
  23.      * @ORM\Id()
  24.      * @ORM\GeneratedValue()
  25.      * @ORM\Column(type="integer")
  26.      * @Groups({"posq:read"})
  27.      *
  28.      */
  29.     private $id;
  30.     /**
  31.      * @ORM\Column(type="string", length=5)
  32.      * @Groups({"posq:read","pos:read"})
  33.      */
  34.     private $state;
  35.     /**
  36.      * @ORM\Column(type="datetime")
  37.      * @Gedmo\Timestampable(on="create")
  38.      */
  39.     private $updatedAt;
  40.     /**
  41.      * @ORM\Column(type="datetime", nullable=true)
  42.      */
  43.     private $endedAt;
  44.     /**
  45.      * Validation date
  46.      * @ORM\Column(type="datetime", nullable=true)
  47.      */
  48.     private $validatedAt;
  49.     /**
  50.      * @ORM\OneToOne(targetEntity=ProspectOnStore::class, mappedBy="qualification")
  51.      */
  52.     private ProspectOnStore $prospectOnStore;
  53.     /**
  54.      * @ORM\Column(type="datetime", nullable=true)
  55.      */
  56.     private $mediaoptinTransmissionDate;
  57.     /**
  58.      * @ORM\Column(type="boolean", nullable=true)
  59.      */
  60.     private $mediaoptinTransmissionStatus;
  61.     /**
  62.      * @ORM\Column(type="string", length=255, nullable=true)
  63.      */
  64.     private $mediaoptinTransmissionError;
  65.     /**
  66.      * @ORM\Column(type="text", nullable=true)
  67.      */
  68.     private $comment;
  69.     /**
  70.      * @ORM\Column(type="string", length=5)
  71.      */
  72.     private string $service;
  73.     public function __construct(ProspectOnStore  $prospectOnStore)
  74.     {
  75.         $this->state QualificationStateEnum::PENDING;
  76.         $this->service QualificationServiceEnum::HUBSPOT;
  77.         $this->prospectOnStore $prospectOnStore;
  78.     }
  79.     public function getId(): ?int
  80.     {
  81.         return $this->id;
  82.     }
  83.     public function getState(): ?string
  84.     {
  85.         return $this->state;
  86.     }
  87.     public function isValidated(): bool
  88.     {
  89.         return $this->state == QualificationStateEnum::VALID;
  90.     }
  91.     public function isPending(): bool
  92.     {
  93.         return $this->state == QualificationStateEnum::PENDING;
  94.     }
  95.     public function getStateLabel(): ?string
  96.     {
  97.         return QualificationStateEnum::getStateName($this->state);
  98.     }
  99.     public function setState(string $state): self
  100.     {
  101.         $this->state $state;
  102.         return $this;
  103.     }
  104.     public function getUpdatedAt(): ?\DateTimeInterface
  105.     {
  106.         return $this->updatedAt;
  107.     }
  108.     public function setUpdatedAt(\DateTimeInterface $updatedAt): self
  109.     {
  110.         $this->updatedAt $updatedAt;
  111.         return $this;
  112.     }
  113.     /**
  114.      * @return ProspectOnStore
  115.      */
  116.     public function getProspectOnStore(): ProspectOnStore
  117.     {
  118.         return $this->prospectOnStore;
  119.     }
  120.     /**
  121.      * @param ProspectOnStore $prospectOnStore
  122.      */
  123.     public function setProspectOnStore(ProspectOnStore $prospectOnStore): void
  124.     {
  125.         $this->prospectOnStore $prospectOnStore;
  126.     }
  127.     /**
  128.      * shortcut
  129.      * @return Prospect
  130.      */
  131.     public function getProspect(): Prospect
  132.     {
  133.         return $this->prospectOnStore->getProspect();
  134.     }
  135.     /**
  136.      * shortcut
  137.      * @return Store
  138.      */
  139.     public function getStore(): Store
  140.     {
  141.         return $this->prospectOnStore->getStore();
  142.     }
  143.     public function getMediaoptinTransmissionDate(): ?\DateTimeInterface
  144.     {
  145.         return $this->mediaoptinTransmissionDate;
  146.     }
  147.     public function setMediaoptinTransmissionDate(?\DateTimeInterface $mediaoptinTransmissionDate): self
  148.     {
  149.         $this->mediaoptinTransmissionDate $mediaoptinTransmissionDate;
  150.         return $this;
  151.     }
  152.     public function getMediaoptinTransmissionStatus(): ?bool
  153.     {
  154.         return $this->mediaoptinTransmissionStatus;
  155.     }
  156.     public function setMediaoptinTransmissionStatus(?bool $mediaoptinTransmissionStatus): self
  157.     {
  158.         $this->mediaoptinTransmissionStatus $mediaoptinTransmissionStatus;
  159.         return $this;
  160.     }
  161.     public function getMediaoptinTransmissionError(): ?string
  162.     {
  163.         return $this->mediaoptinTransmissionError;
  164.     }
  165.     public function setMediaoptinTransmissionError(?string $mediaoptinTransmissionError): self
  166.     {
  167.         $this->mediaoptinTransmissionError $mediaoptinTransmissionError;
  168.         return $this;
  169.     }
  170.     public function getValidatedAt(): ?\DateTimeInterface
  171.     {
  172.         return $this->validatedAt;
  173.     }
  174.     public function setValidatedAt(?\DateTimeInterface $validatedAt): self
  175.     {
  176.         $this->validatedAt $validatedAt;
  177.         return $this;
  178.     }
  179.     public function getComment(): ?string
  180.     {
  181.         return $this->comment;
  182.     }
  183.     public function setComment(?string $comment): self
  184.     {
  185.         $this->comment $comment;
  186.         return $this;
  187.     }
  188.     /**
  189.      * @return mixed
  190.      */
  191.     public function getEndedAt()
  192.     {
  193.         return $this->endedAt;
  194.     }
  195.     /**
  196.      * @param mixed $endedAt
  197.      */
  198.     public function setEndedAt($endedAt): void
  199.     {
  200.         $this->endedAt $endedAt;
  201.     }
  202.     public function getService(): ?string
  203.     {
  204.         return $this->service;
  205.     }
  206.     public function getServiceLabel(): ?string
  207.     {
  208.         return QualificationServiceEnum::getServiceName($this->service);
  209.     }
  210.     public function setService(string $service): self
  211.     {
  212.         $this->service $service;
  213.         return $this;
  214.     }
  215. }