<?php
namespace App\AtechNet\CoreBundle\Entity;
use App\AtechNet\CoreBundle\Translation\TranslatorInterface;
use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\JoinColumn;
use Doctrine\ORM\Mapping\ManyToOne;
use Doctrine\ORM\Mapping\Table as Table;
/**
* CustomerSentEmail
*
* @Table(name="customers__sent_emails")
* @Entity
*/
class CustomerSentEmail extends AbstractEntity
{
/**
* @var Customer
*
* @ManyToOne(targetEntity="Customer", inversedBy="sentEmails")
* @JoinColumn(name="customer", referencedColumnName="id")
*/
private $customer;
public const EventType_Registration = 'Registration';
public const EventType_NewOrder = 'New order';
public const EventType_OrderStatusChange = 'Order status change';
public const EventType_Campaign = 'Campaign';
public const EventType_AccountActivationReminder = 'Account activation reminder';
public const EventType_Notice = 'Notice';
public const EventType_NotLoggedInReminder = 'Not logged in reminder';
public const EventType_Newsletter = 'Newsletter';
public function getEventTypeChoices()
{
return [
0 => self::EventType_Registration,
1 => self::EventType_NewOrder,
2 => self::EventType_OrderStatusChange,
3 => self::EventType_Campaign,
4 => self::EventType_AccountActivationReminder,
5 => self::EventType_Notice,
6 => self::EventType_NotLoggedInReminder,
7 => self::EventType_Newsletter,
];
}
/**
* @var integer
*
* @Column(name="event", type="integer")
*/
private $event;
/**
* @var string
*
* @Column(name="fromEmail", type="string", length=255)
*/
private $fromEmail;
/**
* @var string
*
* @Column(name="toEmail", type="string", length=255)
*/
private $toEmail;
/**
* @var string
*
* @Column(name="subject", type="string", length=255)
*/
private $subject;
/**
* @var string
*
* @Column(name="body", type="text")
*/
private $body;
/**
* @return Customer
*/
public function getCustomer()
{
return $this->customer;
}
/**
* @param Customer $customer
*/
public function setCustomer($customer)
{
$this->customer = $customer;
}
/**
* Set event
*
* @param integer $event
* @return CustomerSentEmail
*/
public function setEvent($event)
{
$this->event = $event;
return $this;
}
/**
* Get event
*
* @return integer
*/
public function getEvent()
{
return $this->event;
}
/**
* Set fromEmail
*
* @param string $fromEmail
* @return CustomerSentEmail
*/
public function setFromEmail($fromEmail)
{
$this->fromEmail = $fromEmail;
return $this;
}
/**
* Get fromEmail
*
* @return string
*/
public function getFromEmail()
{
return $this->fromEmail;
}
/**
* Set toEmail
*
* @param string $toEmail
* @return CustomerSentEmail
*/
public function setToEmail($toEmail)
{
$this->toEmail = $toEmail;
return $this;
}
/**
* Get toEmail
*
* @return string
*/
public function getToEmail()
{
return $this->toEmail;
}
/**
* @return string
*/
public function getSubject()
{
return $this->subject;
}
/**
* @param string $subject
*/
public function setSubject($subject)
{
$this->subject = $subject;
}
/**
* Set body
*
* @param string $body
* @return CustomerSentEmail
*/
public function setBody($body)
{
$this->body = $body;
return $this;
}
/**
* Get body
*
* @return string
*/
public function getBody()
{
return $this->body;
}
/**
* Returns the title of event for current object
* If translator is set, translates it
*
* @param TranslatorInterface $translator
* @return string
*/
public function getEventTitle(TranslatorInterface $translator = null)
{
return is_null($translator) ? $this->getEventTypeChoices()[$this->getEvent()] : $translator->trans($this->getEventTypeChoices()[$this->getEvent()]);
}
}