<?php
namespace App\Entity;
use App\Constants\MailEventConstants;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
#[UniqueEntity(fields: ['event'])]
#[ORM\Entity(repositoryClass: \App\Repository\MailTemplateRepository::class)]
#[ORM\Table(name: 'mail_template')]
#[ORM\UniqueConstraint(columns: ['event'])]
class MailTemplate
{
/**
* @var int
*/
#[ORM\Column(name: 'id', type: 'integer')]
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'AUTO')]
private $id;
/**
* @var string
*/
#[Assert\NotNull]
#[Assert\Email(message: "The email '{{ value }}' is not a valid email.")]
#[ORM\Column(name: 'from_email', type: 'string', length: 255)]
private $fromEmail;
/**
* @var string
*/
#[Assert\NotNull]
#[ORM\Column(name: 'from_name', type: 'string', length: 255)]
private $fromName;
/**
* @var string
*/
#[ORM\Column(name: 'admin_email', type: 'string', length: 255, nullable: true)]
private $adminEmail;
/**
* @var int
*/
#[Assert\NotNull]
#[ORM\Column(name: 'event', type: 'integer')]
private $event;
/**
* @var string
*/
#[ORM\Column(name: 'subject', type: 'string', length: 191)]
private $subject;
/**
* @var string
*/
#[Assert\NotNull(message: 'field can not be empty')]
#[ORM\Column(name: 'body', type: 'text')]
private $body;
#[Assert\NotNull(message: 'field can not be empty')]
#[ORM\Column(name: 'plain_body', type: 'text')]
private ?string $plainBody = null;
/**
* Get id.
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set fromEmail.
*
* @param string $fromEmail
*
* @return MailTemplate
*/
public function setFromEmail($fromEmail): static
{
$this->fromEmail = $fromEmail;
return $this;
}
/**
* Get fromEmail.
*
* @return string
*/
public function getFromEmail()
{
return $this->fromEmail;
}
/**
* Set fromName.
*
* @param string $fromName
*
* @return MailTemplate
*/
public function setFromName($fromName): static
{
$this->fromName = $fromName;
return $this;
}
/**
* Get fromName.
*
* @return string
*/
public function getFromName()
{
return $this->fromName;
}
/**
* Set adminEmail.
*
* @param string $adminEmail
*
* @return MailTemplate
*/
public function setAdminEmail($adminEmail): static
{
$this->adminEmail = $adminEmail;
return $this;
}
/**
* Get adminEmail.
*
* @return mixed
*/
public function getAdminEmail()
{
return $this->adminEmail;
}
/**
* Set event.
*
* @param int $event
*
* @return MailTemplate
*/
public function setEvent(int $event): static
{
$this->event = $event;
return $this;
}
public function getEventLabel(): string
{
$events = MailEventConstants::loadValues();
return $events[$this->event] ?? (string)$this->event;
}
/**
* Get event.
*
* @return int
*/
public function getEvent()
{
return $this->event;
}
public function getSubject(): ?string
{
return $this->subject;
}
public function setSubject(string $subject): static
{
$this->subject = $subject;
return $this;
}
public function getBody(): ?string
{
return $this->body;
}
public function setBody(string $body): static
{
$this->body = $body;
return $this;
}
public function getPlainBody(): ?string
{
return $this->plainBody;
}
public function setPlainBody(string $plainBody): static
{
$this->plainBody = $plainBody;
return $this;
}
}