Spaces:
No application file
No application file
namespace Mautic\ChannelBundle\Entity; | |
use Doctrine\DBAL\Types\Types; | |
use Doctrine\ORM\Mapping\ClassMetadata; | |
use Mautic\ApiBundle\Serializer\Driver\ApiMetadataDriver; | |
use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder; | |
use Mautic\CoreBundle\Entity\CommonEntity; | |
class Channel extends CommonEntity | |
{ | |
/** | |
* @var int | |
*/ | |
private $id; | |
/** | |
* @var string | |
*/ | |
private $channel; | |
/** | |
* @var int|null | |
*/ | |
private $channelId; | |
/** | |
* @var string | |
*/ | |
private $channelName; | |
/** | |
* @var Message | |
*/ | |
private $message; | |
/** | |
* @var array | |
*/ | |
private $properties = []; | |
/** | |
* @var bool | |
*/ | |
private $isEnabled = false; | |
public static function loadMetadata(ClassMetadata $metadata): void | |
{ | |
$builder = new ClassMetadataBuilder($metadata); | |
$builder->setTable('message_channels') | |
->addIndex(['channel', 'channel_id'], 'channel_entity_index') | |
->addIndex(['channel', 'is_enabled'], 'channel_enabled_index') | |
->addUniqueConstraint(['message_id', 'channel'], 'channel_index'); | |
$builder | |
->addId() | |
->addField('channel', 'string') | |
->addNamedField('channelId', 'integer', 'channel_id', true) | |
->addField('properties', Types::JSON) | |
->createField('isEnabled', 'boolean') | |
->columnName('is_enabled') | |
->build(); | |
$builder->createManyToOne('message', Message::class) | |
->addJoinColumn('message_id', 'id', false, false, 'CASCADE') | |
->inversedBy('channels') | |
->build(); | |
} | |
/** | |
* Prepares the metadata for API usage. | |
*/ | |
public static function loadApiMetadata(ApiMetadataDriver $metadata): void | |
{ | |
$metadata->setGroupPrefix('messageChannel') | |
->addListProperties( | |
[ | |
'id', | |
'channel', | |
'channelId', | |
'channelName', | |
'isEnabled', | |
] | |
) | |
->addProperties( | |
[ | |
'properties', | |
'message', | |
] | |
) | |
->build(); | |
} | |
/** | |
* @return int | |
*/ | |
public function getId() | |
{ | |
return $this->id; | |
} | |
/** | |
* @return string | |
*/ | |
public function getChannel() | |
{ | |
return $this->channel; | |
} | |
/** | |
* @param string $channel | |
* | |
* @return Channel | |
*/ | |
public function setChannel($channel) | |
{ | |
$this->channel = $channel; | |
return $this; | |
} | |
/** | |
* @return int | |
*/ | |
public function getChannelId() | |
{ | |
return $this->channelId; | |
} | |
/** | |
* @param int $channelId | |
* | |
* @return Channel | |
*/ | |
public function setChannelId($channelId) | |
{ | |
if (empty($channelId)) { | |
$channelId = null; | |
} | |
$this->channelId = $channelId; | |
return $this; | |
} | |
/** | |
* @return string | |
*/ | |
public function getChannelName() | |
{ | |
return $this->channelName; | |
} | |
/** | |
* @param string $channelName | |
* | |
* @return Channel | |
*/ | |
public function setChannelName($channelName) | |
{ | |
$this->channelName = $channelName; | |
return $this; | |
} | |
/** | |
* @return Message | |
*/ | |
public function getMessage() | |
{ | |
return $this->message; | |
} | |
/** | |
* @return Channel | |
*/ | |
public function setMessage(Message $message) | |
{ | |
$this->message = $message; | |
return $this; | |
} | |
/** | |
* @return array | |
*/ | |
public function getProperties() | |
{ | |
return $this->properties; | |
} | |
/** | |
* @return Channel | |
*/ | |
public function setProperties(array $properties) | |
{ | |
$this->properties = $properties; | |
return $this; | |
} | |
/** | |
* @return bool | |
*/ | |
public function isEnabled() | |
{ | |
return $this->isEnabled; | |
} | |
/** | |
* @param bool $isEnabled | |
* | |
* @return Channel | |
*/ | |
public function setIsEnabled($isEnabled) | |
{ | |
$this->isEnabled = $isEnabled; | |
return $this; | |
} | |
} | |