<?phpnamespace App\Entity;use App\Entity\Traits\Timestampable;use App\Repository\DiscussionRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping as ORM;use JMS\Serializer\Annotation\Groups;#[ORM\HasLifecycleCallbacks]#[ORM\Entity(repositoryClass: DiscussionRepository::class)]class Discussion{ use Timestampable; #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] #[Groups(['getDiscussion'])] private ?int $id = null; #[ORM\ManyToOne(inversedBy: 'discussions')] #[ORM\JoinColumn(nullable: false)] #[Groups(['getDiscussion'])] private ?User $userA = null; #[ORM\ManyToOne(inversedBy: 'discussions')] #[ORM\JoinColumn(nullable: false)] #[Groups(['getDiscussion'])] private ?User $userB = null; #[ORM\OneToMany(mappedBy: 'discussion', targetEntity: DiscussionMessage::class)] #[Groups(['getDiscussion'])] private Collection $discussionMessages; #[ORM\ManyToOne(inversedBy: 'discussions')] private ?School $school = null; #[ORM\ManyToOne(inversedBy: 'discussions')] private ?SchoolYear $year = null; public function __construct() { $this->discussionMessages = new ArrayCollection(); } public function getId(): ?int { return $this->id; } public function getUserA(): ?User { return $this->userA; } public function setUserA(?User $userA): static { $this->userA = $userA; return $this; } public function getUserB(): ?User { return $this->userB; } public function setUserB(?User $userB): static { $this->userB = $userB; return $this; } /** * @return Collection<int, DiscussionMessage> */ public function getDiscussionMessages(): Collection { return $this->discussionMessages; } public function addDiscussionMessage(DiscussionMessage $discussionMessage): static { if (!$this->discussionMessages->contains($discussionMessage)) { $this->discussionMessages->add($discussionMessage); $discussionMessage->setDiscussion($this); } return $this; } public function removeDiscussionMessage(DiscussionMessage $discussionMessage): static { if ($this->discussionMessages->removeElement($discussionMessage)) { // set the owning side to null (unless already changed) if ($discussionMessage->getDiscussion() === $this) { $discussionMessage->setDiscussion(null); } } return $this; } public function getSchool(): ?School { return $this->school; } public function setSchool(?School $school): static { $this->school = $school; return $this; } public function getYear(): ?SchoolYear { return $this->year; } public function setYear(?SchoolYear $year): static { $this->year = $year; return $this; }}