<?phpnamespace App\Entity;use App\Entity\Traits\Timestampable;use App\Repository\DiscussionClassRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping as ORM;use JMS\Serializer\Annotation\Groups;#[ORM\Entity(repositoryClass: DiscussionClassRepository::class)]#[ORM\HasLifecycleCallbacks]class DiscussionClass{ use Timestampable; #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] #[Groups(['getDiscussion','getDiscussionClass'])] private ?int $id = null; #[ORM\ManyToOne(inversedBy: 'discussionClasses')] #[Groups(['getDiscussion',"getDiscussionClass"])] private ?TheClass $classe = null; #[ORM\ManyToOne(inversedBy: 'discussionClasses')] private ?SchoolYear $year = null; #[ORM\ManyToOne(inversedBy: 'discussionClasses')] private ?School $school = null; #[ORM\OneToMany(mappedBy: 'discussion', targetEntity: DiscussionClassMessage::class)] private Collection $discussionClassMessages; #[ORM\OneToMany(mappedBy: 'Discussion', targetEntity: DiscussionMessagesCount::class, orphanRemoval: true)] private Collection $discussionMessagesCounts; public function __construct() { $this->discussionClassMessages = new ArrayCollection(); $this->discussionMessagesCounts = new ArrayCollection(); } public function getId(): ?int { return $this->id; } public function getClasse(): ?TheClass { return $this->classe; } public function setClasse(?TheClass $classe): static { $this->classe = $classe; return $this; } public function getYear(): ?SchoolYear { return $this->year; } public function setYear(?SchoolYear $year): static { $this->year = $year; return $this; } public function getSchool(): ?School { return $this->school; } public function setSchool(?School $school): static { $this->school = $school; return $this; } /** * @return Collection<int, DiscussionClassMessage> */ public function getDiscussionClassMessages(): Collection { return $this->discussionClassMessages; } public function addDiscussionClassMessage(DiscussionClassMessage $discussionClassMessage): static { if (!$this->discussionClassMessages->contains($discussionClassMessage)) { $this->discussionClassMessages->add($discussionClassMessage); $discussionClassMessage->setDiscussion($this); } return $this; } public function removeDiscussionClassMessage(DiscussionClassMessage $discussionClassMessage): static { if ($this->discussionClassMessages->removeElement($discussionClassMessage)) { // set the owning side to null (unless already changed) if ($discussionClassMessage->getDiscussion() === $this) { $discussionClassMessage->setDiscussion(null); } } return $this; } /** * @return Collection<int, DiscussionMessagesCount> */ public function getDiscussionMessagesCounts(): Collection { return $this->discussionMessagesCounts; } public function addDiscussionMessagesCount(DiscussionMessagesCount $discussionMessagesCount): static { if (!$this->discussionMessagesCounts->contains($discussionMessagesCount)) { $this->discussionMessagesCounts->add($discussionMessagesCount); $discussionMessagesCount->setDiscussion($this); } return $this; } public function removeDiscussionMessagesCount(DiscussionMessagesCount $discussionMessagesCount): static { if ($this->discussionMessagesCounts->removeElement($discussionMessagesCount)) { // set the owning side to null (unless already changed) if ($discussionMessagesCount->getDiscussion() === $this) { $discussionMessagesCount->setDiscussion(null); } } return $this; }}