Spaces:
No application file
No application file
declare(strict_types=1); | |
namespace MauticPlugin\GrapesJsBuilderBundle\Entity; | |
use Doctrine\DBAL\Types\Types; | |
use Doctrine\ORM\Mapping as ORM; | |
use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder; | |
use Mautic\EmailBundle\Entity\Email; | |
class GrapesJsBuilder | |
{ | |
/** | |
* @var int | |
*/ | |
protected $id; | |
/** | |
* @var Email|null | |
*/ | |
protected $email; | |
/** | |
* @var string|null | |
*/ | |
private $customMjml; | |
public static function loadMetadata(ORM\ClassMetadata $metadata): void | |
{ | |
$builder = new ClassMetadataBuilder($metadata); | |
$builder->setTable('bundle_grapesjsbuilder') | |
->setCustomRepositoryClass(GrapesJsBuilderRepository::class) | |
->addNamedField('customMjml', Types::TEXT, 'custom_mjml', true) | |
->addId(); | |
$builder->createManyToOne( | |
'email', | |
Email::class | |
)->addJoinColumn('email_id', 'id', true, false, 'CASCADE')->build(); | |
} | |
/** | |
* Get id. | |
* | |
* @return int | |
*/ | |
public function getId() | |
{ | |
return $this->id; | |
} | |
/** | |
* @return Email | |
*/ | |
public function getEmail() | |
{ | |
return $this->email; | |
} | |
/** | |
* @return GrapesJsBuilder | |
*/ | |
public function setEmail(Email $email) | |
{ | |
$this->email = $email; | |
return $this; | |
} | |
/** | |
* @return string | |
*/ | |
public function getCustomMjml() | |
{ | |
return $this->customMjml; | |
} | |
/** | |
* @param string $customMjml | |
* | |
* @return GrapesJsBuilder | |
*/ | |
public function setCustomMjml($customMjml) | |
{ | |
$this->customMjml = $customMjml; | |
return $this; | |
} | |
} | |