<?php
namespace App\Entity;
use App\Entity\ConversationMessage\ConversationMessage;
use App\Entity\Profile\JoboffererProfile;
use App\Entity\Profile\JobseekerProfile;
use App\Utility\DateTimeUtility;
use App\Utility\GuidUtility;
use DateTime;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Entity(repositoryClass="App\Repository\MultiConversationMessagesMailingRepository")
*
* @ORM\Table(
* name="multi_conversation_messages_mailings",
* indexes={
*
* @ORM\Index(name="sender_jobseeker_profiles_idx", columns={"sender_jobseeker_profiles_id"}),
* @ORM\Index(name="sender_jobofferer_profiles_idx", columns={"sender_jobofferer_profiles_id"})
* }
* )
*/
class MultiConversationMessagesMailing
{
public function __construct()
{
$this->sentAt = DateTimeUtility::createDateTimeUtc();
}
/**
* @var string
*
* @ORM\GeneratedValue(strategy="CUSTOM")
*
* @ORM\CustomIdGenerator(class="App\Utility\DatabaseIdGenerator")
*
* @ORM\Column(name="id", type="guid")
*
* @ORM\Id
*/
private $id;
public function setId(string $id)
{
GuidUtility::validOrThrow($id);
$this->id = $id;
}
public function getId()
{
return $this->id;
}
/**
* @var JobseekerProfile
*
* @ORM\ManyToOne(targetEntity="App\Entity\Profile\JobseekerProfile", cascade={"persist"})
*
* @ORM\JoinColumn(name="sender_jobseeker_profiles_id", referencedColumnName="id", nullable=true, onDelete="SET NULL")
*/
private $senderJobseekerProfile;
public function getSenderJobseekerProfile(): Profile
{
return $this->senderJobseekerProfile;
}
public function setSenderJobseekerProfile(Profile $senderJobseekerProfile)
{
$this->senderJobseekerProfile = $senderJobseekerProfile;
}
/**
* @var JoboffererProfile
*
* @ORM\ManyToOne(targetEntity="App\Entity\Profile\JoboffererProfile", cascade={"persist"})
*
* @ORM\JoinColumn(name="sender_jobofferer_profiles_id", referencedColumnName="id", nullable=true, onDelete="SET NULL")
*/
private $senderJoboffererProfile;
public function getSenderJoboffererProfile(): Profile
{
return $this->senderJoboffererProfile;
}
public function setSenderJoboffererProfile(Profile $senderJoboffererProfile)
{
$this->senderJoboffererProfile = $senderJoboffererProfile;
}
/**
* @var DateTime
*
* @ORM\Column(name="sent_at", type="datetime", nullable=false)
*/
private $sentAt;
public function getSentAt(): DateTime
{
return $this->sentAt;
}
public function setSentAt(DateTime $sentAt): void
{
$this->sentAt = $sentAt;
}
public function __toString(): string
{
return (string)$this->getId();
}
/**
* @var Collection|ConversationMessage[]
*
* @ORM\OneToMany(targetEntity="\App\Entity\ConversationMessage\ConversationMessage", mappedBy="multiConversationMessagesMailing", cascade={"persist", "remove"})
*/
private $conversationMessages;
/**
* @return ConversationMessage[]|Collection
*/
public function getConversationMessages()
{
return $this->conversationMessages;
}
public function addConversationMessage(ConversationMessage $conversationMessages): void
{
$this->conversationMessages[] = $conversationMessages;
}
/**
* @param ConversationMessage[]|Collection $conversationMessages
*/
public function setConversationMessages($conversationMessages): void
{
$this->conversationMessages = $conversationMessages;
}
}