src/Entity/Discussion.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\ORM\Mapping as ORM;
  6. /**
  7. * @ORM\Entity(repositoryClass=DiscussionRepository::class)
  8. * @ORM\AssociationOverrides({
  9. * @ORM\AssociationOverride(
  10. * name="createdBy",
  11. * inversedBy="senderDiscussions",
  12. * joinColumns={@ORM\JoinColumn(name="created_by", referencedColumnName="id", nullable=true, onDelete="CASCADE")}
  13. * )
  14. * })
  15. */
  16. class Discussion extends BaseEntity
  17. {
  18. /**
  19. * @ORM\Id
  20. * @ORM\GeneratedValue
  21. * @ORM\Column(type="integer")
  22. */
  23. private $id;
  24. /**
  25. * @ORM\ManyToOne(targetEntity=User::class, inversedBy="receiverDiscussions")
  26. * @ORM\JoinColumn(nullable=true, onDelete="SET NULL")
  27. */
  28. private $receiver;
  29. /**
  30. * @ORM\OneToMany(targetEntity=Message::class, mappedBy="discussion", fetch="EXTRA_LAZY")
  31. */
  32. private $messages;
  33. public function __construct()
  34. {
  35. $this->messages = new ArrayCollection();
  36. }
  37. public function getId(): int
  38. {
  39. return $this->id;
  40. }
  41. public function getReceiver(): ?User
  42. {
  43. return $this->receiver;
  44. }
  45. public function setReceiver(?User $receiver): self
  46. {
  47. $this->receiver = $receiver;
  48. return $this;
  49. }
  50. /**
  51. * @return Collection<int, Message>
  52. */
  53. public function getMessages(): Collection
  54. {
  55. return $this->messages;
  56. }
  57. public function addMessage(Message $message): self
  58. {
  59. if (!$this->messages->contains($message)) {
  60. $this->messages[] = $message;
  61. $message->setDiscussion($this);
  62. }
  63. return $this;
  64. }
  65. public function removeMessage(Message $message): self
  66. {
  67. if ($this->messages->removeElement($message)) {
  68. // set the owning side to null (unless already changed)
  69. if ($message->getDiscussion() === $this) {
  70. $message->setDiscussion(null);
  71. }
  72. }
  73. return $this;
  74. }
  75. }