src/Entity/Gos/MessageThread.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Gos;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use JMS\Serializer\Annotation as JMS;
  7. /**
  8.  * @ORM\Entity(repositoryClass="App\Repository\MessageThreadRepository")
  9.  * @ORM\HasLifecycleCallbacks
  10.  */
  11. class MessageThread
  12. {
  13.     /**
  14.      * @ORM\Id()
  15.      * @ORM\GeneratedValue()
  16.      * @ORM\Column(type="integer")
  17.      * @JMS\Groups({"ApiMessageThread"})
  18.      */
  19.     private $id;
  20.     /**
  21.      * @ORM\Column(type="boolean", nullable=true)
  22.      * @JMS\Groups({"ApiMessageThread"})
  23.      */
  24.     private $isActive;
  25.     /**
  26.      * @ORM\Column(type="boolean", nullable=true)
  27.      */
  28.     private $lastMessageByClient;
  29.     /**
  30.      * @ORM\OneToOne(targetEntity="App\Entity\Gos\Message")
  31.      * @ORM\JoinColumn(onDelete="CASCADE")
  32.      * @JMS\Groups({"ApiMessageThread"})
  33.      */
  34.     private $firstMessage;
  35.     /**
  36.      * @ORM\OneToMany(targetEntity="App\Entity\Gos\Message", mappedBy="messageThread", cascade={"remove"}, orphanRemoval=true)
  37.      */
  38.     private $messages;
  39.     /**
  40.      * @ORM\Column(type="datetime")
  41.      * @JMS\Type("DateTime<'Y-m-d'>")
  42.      * @JMS\Groups({"ApiMessageThread"})
  43.      */
  44.     private $createdAt;
  45.     /**
  46.      * @ORM\Column(type="datetime", nullable=true)
  47.      */
  48.     private $updatedAt;
  49.     public function __construct()
  50.     {
  51.         $this->messages = new ArrayCollection();
  52.     }
  53.     /** @ORM\PrePersist() */
  54.     public function prePersist()
  55.     {
  56.         $this->createdAt = new \DateTime();
  57.     }
  58.     /** @ORM\PreUpdate() */
  59.     public function preUpdate()
  60.     {
  61.         $this->updatedAt = new \DateTime();
  62.     }
  63.     public function __toString()
  64.     {
  65.         return (string)$this->id;
  66.     }
  67.     //------------------------------ setters & getters
  68.     public function getId(): ?int
  69.     {
  70.         return $this->id;
  71.     }
  72.     public function getCreatedAt(): ?\DateTimeInterface
  73.     {
  74.         return $this->createdAt;
  75.     }
  76.     public function setCreatedAt(\DateTimeInterface $createdAt): self
  77.     {
  78.         $this->createdAt $createdAt;
  79.         return $this;
  80.     }
  81.     public function getUpdatedAt(): ?\DateTimeInterface
  82.     {
  83.         return $this->updatedAt;
  84.     }
  85.     public function setUpdatedAt(?\DateTimeInterface $updatedAt): self
  86.     {
  87.         $this->updatedAt $updatedAt;
  88.         return $this;
  89.     }
  90.     /**
  91.      * @return Collection|Message[]
  92.      */
  93.     public function getMessages(): Collection
  94.     {
  95.         return $this->messages;
  96.     }
  97.     public function addMessage(Message $message): self
  98.     {
  99.         if (!$this->messages->contains($message)) {
  100.             $this->messages[] = $message;
  101.             $message->setMessageThread($this);
  102.         }
  103.         return $this;
  104.     }
  105.     public function removeMessage(Message $message): self
  106.     {
  107.         if ($this->messages->contains($message)) {
  108.             $this->messages->removeElement($message);
  109.             // set the owning side to null (unless already changed)
  110.             if ($message->getMessageThread() === $this) {
  111.                 $message->setMessageThread(null);
  112.             }
  113.         }
  114.         return $this;
  115.     }
  116.     public function getFirstMessage(): ?Message
  117.     {
  118.         return $this->firstMessage;
  119.     }
  120.     public function setFirstMessage(?Message $firstMessage): self
  121.     {
  122.         $this->firstMessage $firstMessage;
  123.         return $this;
  124.     }
  125.     public function getIsActive(): ?bool
  126.     {
  127.         return $this->isActive;
  128.     }
  129.     public function setIsActive(?bool $isActive): self
  130.     {
  131.         $this->isActive $isActive;
  132.         return $this;
  133.     }
  134.     public function getLastMessageByClient(): ?bool
  135.     {
  136.         return $this->lastMessageByClient;
  137.     }
  138.     public function setLastMessageByClient(?bool $lastMessageByClient): self
  139.     {
  140.         $this->lastMessageByClient $lastMessageByClient;
  141.         return $this;
  142.     }
  143. }