src/App/Entity/MultiConversationMessagesMailing.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\ConversationMessage\ConversationMessage;
  4. use App\Entity\Profile\JoboffererProfile;
  5. use App\Entity\Profile\JobseekerProfile;
  6. use App\Utility\DateTimeUtility;
  7. use App\Utility\GuidUtility;
  8. use DateTime;
  9. use Doctrine\Common\Collections\Collection;
  10. use Doctrine\ORM\Mapping as ORM;
  11. /**
  12. * @ORM\Entity
  13. * @ORM\Entity(repositoryClass="App\Repository\MultiConversationMessagesMailingRepository")
  14. *
  15. * @ORM\Table(
  16. * name="multi_conversation_messages_mailings",
  17. * indexes={
  18. *
  19. * @ORM\Index(name="sender_jobseeker_profiles_idx", columns={"sender_jobseeker_profiles_id"}),
  20. * @ORM\Index(name="sender_jobofferer_profiles_idx", columns={"sender_jobofferer_profiles_id"})
  21. * }
  22. * )
  23. */
  24. class MultiConversationMessagesMailing
  25. {
  26. public function __construct()
  27. {
  28. $this->sentAt = DateTimeUtility::createDateTimeUtc();
  29. }
  30. /**
  31. * @var string
  32. *
  33. * @ORM\GeneratedValue(strategy="CUSTOM")
  34. *
  35. * @ORM\CustomIdGenerator(class="App\Utility\DatabaseIdGenerator")
  36. *
  37. * @ORM\Column(name="id", type="guid")
  38. *
  39. * @ORM\Id
  40. */
  41. private $id;
  42. public function setId(string $id)
  43. {
  44. GuidUtility::validOrThrow($id);
  45. $this->id = $id;
  46. }
  47. public function getId()
  48. {
  49. return $this->id;
  50. }
  51. /**
  52. * @var JobseekerProfile
  53. *
  54. * @ORM\ManyToOne(targetEntity="App\Entity\Profile\JobseekerProfile", cascade={"persist"})
  55. *
  56. * @ORM\JoinColumn(name="sender_jobseeker_profiles_id", referencedColumnName="id", nullable=true, onDelete="SET NULL")
  57. */
  58. private $senderJobseekerProfile;
  59. public function getSenderJobseekerProfile(): Profile
  60. {
  61. return $this->senderJobseekerProfile;
  62. }
  63. public function setSenderJobseekerProfile(Profile $senderJobseekerProfile)
  64. {
  65. $this->senderJobseekerProfile = $senderJobseekerProfile;
  66. }
  67. /**
  68. * @var JoboffererProfile
  69. *
  70. * @ORM\ManyToOne(targetEntity="App\Entity\Profile\JoboffererProfile", cascade={"persist"})
  71. *
  72. * @ORM\JoinColumn(name="sender_jobofferer_profiles_id", referencedColumnName="id", nullable=true, onDelete="SET NULL")
  73. */
  74. private $senderJoboffererProfile;
  75. public function getSenderJoboffererProfile(): Profile
  76. {
  77. return $this->senderJoboffererProfile;
  78. }
  79. public function setSenderJoboffererProfile(Profile $senderJoboffererProfile)
  80. {
  81. $this->senderJoboffererProfile = $senderJoboffererProfile;
  82. }
  83. /**
  84. * @var DateTime
  85. *
  86. * @ORM\Column(name="sent_at", type="datetime", nullable=false)
  87. */
  88. private $sentAt;
  89. public function getSentAt(): DateTime
  90. {
  91. return $this->sentAt;
  92. }
  93. public function setSentAt(DateTime $sentAt): void
  94. {
  95. $this->sentAt = $sentAt;
  96. }
  97. public function __toString(): string
  98. {
  99. return (string)$this->getId();
  100. }
  101. /**
  102. * @var Collection|ConversationMessage[]
  103. *
  104. * @ORM\OneToMany(targetEntity="\App\Entity\ConversationMessage\ConversationMessage", mappedBy="multiConversationMessagesMailing", cascade={"persist", "remove"})
  105. */
  106. private $conversationMessages;
  107. /**
  108. * @return ConversationMessage[]|Collection
  109. */
  110. public function getConversationMessages()
  111. {
  112. return $this->conversationMessages;
  113. }
  114. public function addConversationMessage(ConversationMessage $conversationMessages): void
  115. {
  116. $this->conversationMessages[] = $conversationMessages;
  117. }
  118. /**
  119. * @param ConversationMessage[]|Collection $conversationMessages
  120. */
  121. public function setConversationMessages($conversationMessages): void
  122. {
  123. $this->conversationMessages = $conversationMessages;
  124. }
  125. }