src/Entity/Gos/Message.php line 12

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Gos;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use JMS\Serializer\Annotation as JMS;
  5. /**
  6.  * @ORM\Entity(repositoryClass="App\Repository\MessageRepository")
  7.  * @ORM\HasLifecycleCallbacks
  8.  */
  9. class Message
  10. {
  11.     /**
  12.      * @ORM\Id()
  13.      * @ORM\GeneratedValue()
  14.      * @ORM\Column(type="integer")
  15.      * @JMS\Groups({"ApiMessage", "ApiMessageThread"})
  16.      */
  17.     private $id;
  18.     /**
  19.      * @ORM\Column(type="text")
  20.      * @JMS\Groups({"ApiMessage", "ApiMessageThread"})
  21.      */
  22.     private $content;
  23.     /**
  24.      * @ORM\ManyToOne(targetEntity="App\Entity\Gos\MessageThread", inversedBy="messages")
  25.      * @ORM\JoinColumn(onDelete="SET NULL")
  26.      */
  27.     private $messageThread;
  28.     /**
  29.      * @ORM\ManyToOne(targetEntity="App\Entity\Gos\User", inversedBy="messages")
  30.      * @ORM\JoinColumn(onDelete="SET NULL")
  31.      * @JMS\Groups({"ApiMessage", "ApiMessageThread"})
  32.      */
  33.     private $author;
  34.     /**
  35.      * @var bool
  36.      * @ORM\Column(type="boolean")
  37.      */
  38.     private $isRead 0;
  39.     /**
  40.      * @ORM\Column(type="datetime")
  41.      * @JMS\Type("DateTime<'Y-m-d H:i:s'>")
  42.      * @JMS\Groups({"ApiMessage"})
  43.      */
  44.     private $createdAt;
  45.     /**
  46.      * @ORM\Column(type="datetime", nullable=true)
  47.      */
  48.     private $updatedAt;
  49.     /** @ORM\PrePersist() */
  50.     public function prePersist()
  51.     {
  52.         $this->createdAt = new \DateTime();
  53.     }
  54.     /** @ORM\PreUpdate() */
  55.     public function preUpdate()
  56.     {
  57.         $this->updatedAt = new \DateTime();
  58.     }
  59.     public function __toString()
  60.     {
  61.         return (string)$this->id;
  62.     }
  63.     public function isFirstMessageForThread()
  64.     {
  65.         if (
  66.             !empty($this->getMessageThread()->getFirstMessage())
  67.             && $this->getId() == $this->getMessageThread()->getFirstMessage()->getId()
  68.         )
  69.         {
  70.             return true;
  71.         }
  72.         return false;
  73.     }
  74.     public function authorIsModerator()
  75.     {
  76.         if (
  77.             !empty($this->getMessageThread()->getFirstMessage())
  78.             && $this->getAuthor()->getId() == $this->getMessageThread()->getFirstMessage()->getAuthor()->getId()
  79.         )
  80.         {
  81.             return false;
  82.         }
  83.         return true;
  84.     }
  85.     //------------------------------ setters & getters
  86.     public function getId(): ?int
  87.     {
  88.         return $this->id;
  89.     }
  90.     public function getContent(): ?string
  91.     {
  92.         return $this->content;
  93.     }
  94.     public function setContent(string $content): self
  95.     {
  96.         $this->content $content;
  97.         return $this;
  98.     }
  99.     public function getCreatedAt(): ?\DateTimeInterface
  100.     {
  101.         return $this->createdAt;
  102.     }
  103.     public function setCreatedAt(\DateTimeInterface $createdAt): self
  104.     {
  105.         $this->createdAt $createdAt;
  106.         return $this;
  107.     }
  108.     public function getUpdatedAt(): ?\DateTimeInterface
  109.     {
  110.         return $this->updatedAt;
  111.     }
  112.     public function setUpdatedAt(?\DateTimeInterface $updatedAt): self
  113.     {
  114.         $this->updatedAt $updatedAt;
  115.         return $this;
  116.     }
  117.     public function getMessageThread(): ?MessageThread
  118.     {
  119.         return $this->messageThread;
  120.     }
  121.     public function setMessageThread(?MessageThread $messageThread): self
  122.     {
  123.         $this->messageThread $messageThread;
  124.         return $this;
  125.     }
  126.     public function getAuthor(): ?User
  127.     {
  128.         return $this->author;
  129.     }
  130.     public function setAuthor(?User $author): self
  131.     {
  132.         $this->author $author;
  133.         return $this;
  134.     }
  135.     public function getIsRead(): ?bool
  136.     {
  137.         return $this->isRead;
  138.     }
  139.     public function setIsRead(?bool $isRead): self
  140.     {
  141.         $this->isRead $isRead;
  142.         return $this;
  143.     }
  144. }