<?php
namespace App\Entity\DirectEmailCommunication;
use App\Entity\ConversationMessage\ConversationMessage;
use App\Utility\GuidUtility;
use DateTime;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
*
* @ORM\Table(
* name="outgoing_direct_email_communication_messages",
* indexes={}
* )
*/
class OutgoingDirectEmailCommunicationMessage
{
/**
* @var string
*
* @ORM\GeneratedValue(strategy="CUSTOM")
*
* @ORM\CustomIdGenerator(class="App\Utility\DatabaseIdGenerator")
*
* @ORM\Column(name="id", type="guid")
*
* @ORM\Id
*/
private $id;
public function getId(): string
{
return $this->id;
}
public function setId(string $id): void
{
GuidUtility::validOrThrow($id);
$this->id = $id;
}
/**
* @var ConversationMessage
*
* @ORM\OneToOne(targetEntity="App\Entity\ConversationMessage\ConversationMessage", inversedBy="outgoingDirectEmailCommunicationMessage", cascade={"persist"})
*
* @ORM\JoinColumn(name="conversation_messages_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
*/
private $conversationMessage;
public function getConversationMessage(): ConversationMessage
{
return $this->conversationMessage;
}
public function setConversationMessage(ConversationMessage $conversationMessage): void
{
$this->conversationMessage = $conversationMessage;
}
/**
* @var IncomingDirectEmailCommunicationMessage|Collection
*
* @ORM\OneToMany(targetEntity="App\Entity\DirectEmailCommunication\IncomingDirectEmailCommunicationMessage", mappedBy="outgoingDirectEmailCommunicationMessage", cascade={"persist", "remove"})
*/
private $incomingDirectEmailCommunicationMessages;
public function getIncomingDirectEmailCommunicationMessages(): Collection
{
return $this->incomingDirectEmailCommunicationMessages;
}
public function setIncomingDirectEmailCommunicationMessages(Collection $incomingDirectEmailCommunicationMessages): void
{
$this->incomingDirectEmailCommunicationMessages = $incomingDirectEmailCommunicationMessages;
}
/** @var string */
private $receiverEmailAddress;
public function getReceiverEmailAddress(): string
{
return $this->receiverEmailAddress;
}
public function setReceiverEmailAddress(string $receiverEmailAddress): void
{
$this->receiverEmailAddress = $receiverEmailAddress;
}
/**
* @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;
}
/**
* @var string
*
* @ORM\Column(name="subject", type="string", length=255, nullable=false)
*/
private $subject;
public function getSubject(): string
{
return $this->subject;
}
public function setSubject(string $subject): void
{
$this->subject = mb_substr($subject, 0, 255, 'UTF-8');
}
/**
* @var string
*
* @ORM\Column(name="body", type="string", length=8192, nullable=false)
*/
private $body;
public function getBody(): string
{
return $this->body;
}
public function setBody(string $body): void
{
$this->body = mb_substr($body, 0, 8192, 'UTF-8');
}
}