src/Entity/Discussion.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\Traits\Timestampable;
  4. use App\Repository\DiscussionRepository;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use JMS\Serializer\Annotation\Groups;
  9. #[ORM\HasLifecycleCallbacks]
  10. #[ORM\Entity(repositoryClassDiscussionRepository::class)]
  11. class Discussion
  12. {
  13.     use Timestampable;
  14.     #[ORM\Id]
  15.     #[ORM\GeneratedValue]
  16.     #[ORM\Column]
  17.     #[Groups(['getDiscussion'])]
  18.     private ?int $id null;
  19.     #[ORM\ManyToOne(inversedBy'discussions')]
  20.     #[ORM\JoinColumn(nullablefalse)]
  21.     #[Groups(['getDiscussion'])]
  22.     private ?User $userA null;
  23.     #[ORM\ManyToOne(inversedBy'discussions')]
  24.     #[ORM\JoinColumn(nullablefalse)]
  25.     #[Groups(['getDiscussion'])]
  26.     private ?User $userB null;
  27.     #[ORM\OneToMany(mappedBy'discussion'targetEntityDiscussionMessage::class)]
  28.     #[Groups(['getDiscussion'])]
  29.     private Collection $discussionMessages;
  30.     #[ORM\ManyToOne(inversedBy'discussions')]
  31.     private ?School $school null;
  32.     #[ORM\ManyToOne(inversedBy'discussions')]
  33.     private ?SchoolYear $year null;
  34.     public function __construct()
  35.     {
  36.         $this->discussionMessages = new ArrayCollection();
  37.     }
  38.     public function getId(): ?int
  39.     {
  40.         return $this->id;
  41.     }
  42.     public function getUserA(): ?User
  43.     {
  44.         return $this->userA;
  45.     }
  46.     public function setUserA(?User $userA): static
  47.     {
  48.         $this->userA $userA;
  49.         return $this;
  50.     }
  51.     public function getUserB(): ?User
  52.     {
  53.         return $this->userB;
  54.     }
  55.     public function setUserB(?User $userB): static
  56.     {
  57.         $this->userB $userB;
  58.         return $this;
  59.     }
  60.     /**
  61.      * @return Collection<int, DiscussionMessage>
  62.      */
  63.     public function getDiscussionMessages(): Collection
  64.     {
  65.         return $this->discussionMessages;
  66.     }
  67.     public function addDiscussionMessage(DiscussionMessage $discussionMessage): static
  68.     {
  69.         if (!$this->discussionMessages->contains($discussionMessage)) {
  70.             $this->discussionMessages->add($discussionMessage);
  71.             $discussionMessage->setDiscussion($this);
  72.         }
  73.         return $this;
  74.     }
  75.     public function removeDiscussionMessage(DiscussionMessage $discussionMessage): static
  76.     {
  77.         if ($this->discussionMessages->removeElement($discussionMessage)) {
  78.             // set the owning side to null (unless already changed)
  79.             if ($discussionMessage->getDiscussion() === $this) {
  80.                 $discussionMessage->setDiscussion(null);
  81.             }
  82.         }
  83.         return $this;
  84.     }
  85.     public function getSchool(): ?School
  86.     {
  87.         return $this->school;
  88.     }
  89.     public function setSchool(?School $school): static
  90.     {
  91.         $this->school $school;
  92.         return $this;
  93.     }
  94.     public function getYear(): ?SchoolYear
  95.     {
  96.         return $this->year;
  97.     }
  98.     public function setYear(?SchoolYear $year): static
  99.     {
  100.         $this->year $year;
  101.         return $this;
  102.     }
  103. }