<?phpnamespace App\Entity;use App\Entity\Traits\Timestampable;use App\Repository\DiscussionMessageRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;use JMS\Serializer\Annotation\Groups;#[ORM\HasLifecycleCallbacks]#[ORM\Entity(repositoryClass: DiscussionMessageRepository::class)]class DiscussionMessage{ use Timestampable; #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] #[Groups(['getDiscussion'])] private ?int $id = null; #[ORM\ManyToOne(inversedBy: 'discussionMessages')] #[Groups(['getDiscussion'])] private ?User $messageBy = null; #[ORM\ManyToOne(inversedBy: 'discussionMessages')] #[Groups(['getDiscussion'])] private ?User $messageFor = null; #[ORM\Column] #[Groups(['getDiscussion'])] private ?bool $isRead = null; #[ORM\Column(type: Types::TEXT, nullable: true)] #[Groups(['getDiscussion'])] private ?string $message = null; #[ORM\ManyToOne(inversedBy: 'discussionMessages')] #[ORM\JoinColumn(nullable: false)] private ?Discussion $discussion = null; #[ORM\Column(length: 255, nullable: true)] #[Groups(['getDiscussion'])] private ?string $fileName = null; #[ORM\ManyToOne(targetEntity: self::class, inversedBy: 'discussionMessagesReply')] #[Groups(['getDiscussion'])] private ?self $replyToMessage = null; #[ORM\OneToMany(mappedBy: 'replyToMessage', targetEntity: self::class)] private Collection $discussionMessagesReply; public function __construct() { $this->discussionMessagesReply = new ArrayCollection(); } public function getId(): ?int { return $this->id; } public function getMessageBy(): ?User { return $this->messageBy; } public function setMessageBy(?User $messageBy): static { $this->messageBy = $messageBy; return $this; } public function getMessageFor(): ?User { return $this->messageFor; } public function setMessageFor(?User $messageFor): static { $this->messageFor = $messageFor; return $this; } public function isIsRead(): ?bool { return $this->isRead; } public function setIsRead(bool $isRead): static { $this->isRead = $isRead; return $this; } public function getMessage(): ?string { return $this->message; } public function setMessage(?string $message): static { $this->message = $message; return $this; } public function getDiscussion(): ?Discussion { return $this->discussion; } public function setDiscussion(?Discussion $discussion): static { $this->discussion = $discussion; return $this; } public function getFileName(): ?string { return $this->fileName; } public function setFileName(?string $fileName): static { $this->fileName = $fileName; return $this; } public function getReplyToMessage(): ?self { return $this->replyToMessage; } public function setReplyToMessage(?self $replyToMessage): static { $this->replyToMessage = $replyToMessage; return $this; } /** * @return Collection<int, self> */ public function getDiscussionMessagesReply(): Collection { return $this->discussionMessagesReply; } public function addDiscussionMessagesReply(self $discussionMessagesReply): static { if (!$this->discussionMessagesReply->contains($discussionMessagesReply)) { $this->discussionMessagesReply->add($discussionMessagesReply); $discussionMessagesReply->setReplyToMessage($this); } return $this; } public function removeDiscussionMessagesReply(self $discussionMessagesReply): static { if ($this->discussionMessagesReply->removeElement($discussionMessagesReply)) { // set the owning side to null (unless already changed) if ($discussionMessagesReply->getReplyToMessage() === $this) { $discussionMessagesReply->setReplyToMessage(null); } } return $this; }}