false])] private bool $isSystem = false; #[ORM\ManyToOne(inversedBy: 'emails')] #[ORM\JoinColumn(nullable: true)] private Access $author; #[ORM\OneToMany(mappedBy: 'email', targetEntity: ReportEmail::class, cascade: ['persist'], orphanRemoval: true)] private Collection $reports; #[ORM\ManyToOne(cascade: ['persist'])] #[ORM\JoinColumn(nullable: true)] private Mail $mailAttached; #[ORM\ManyToMany(targetEntity: File::class, cascade: ['persist'], orphanRemoval: true)] #[ORM\JoinTable(name: 'messages_files')] #[ORM\JoinColumn(name: 'message_id', referencedColumnName: 'id', onDelete: 'cascade')] #[ORM\InverseJoinColumn(name: 'file_id', referencedColumnName: 'id', onDelete: 'cascade')] private Collection $files; #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'emails', cascade: ['persist'])] #[ORM\JoinTable(name: 'tag_message')] #[ORM\JoinColumn(name: 'message_id', referencedColumnName: 'id')] #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')] protected Collection $tags; public function __construct() { $this->uuid = Uuid::uuid4(); $this->reports = new ArrayCollection(); $this->files = new ArrayCollection(); $this->tags = new ArrayCollection(); } public function getDiscr(): ?string { return $this->discr; } public function setDiscr(string $discr): self { $this->discr = $discr; return $this; } public function setIsSystem(bool $isSystem): self { $this->isSystem = $isSystem; return $this; } public function getIsSystem(): bool { return $this->isSystem; } public function getAuthor(): ?Access { return $this->author; } public function setAuthor(?Access $author): self { $this->author = $author; return $this; } /** * @return Collection */ public function getReports(): Collection { return $this->reports; } public function addReport(ReportEmail $report): self { if (!$this->reports->contains($report)) { $this->reports[] = $report; $report->setEmail($this); } return $this; } public function removeReport(ReportEmail $report): self { if ($this->reports->removeElement($report)) { // set the owning side to null (unless already changed) if ($report->getEmail() === $this) { $report->setEmail(null); } } return $this; } public function getMailAttached(): ?Mail { return $this->mailAttached; } public function setMailAttached(?Mail $mailAttached): self { $this->mailAttached = $mailAttached; return $this; } /** * @return Collection */ public function getFiles(): Collection { return $this->files; } public function addFile(File $file): self { if (!$this->files->contains($file)) { $this->files[] = $file; } return $this; } public function removeFile(File $file): self { $this->files->removeElement($file); return $this; } /** * @return Collection */ public function getTags(): Collection { return $this->tags; } public function addTag(Tagg $tag): self { if (!$this->tags->contains($tag)) { $this->tags[] = $tag; } return $this; } public function removeTag(Tagg $tag): self { $this->tags->removeElement($tag); return $this; } }