Spaces:
No application file
No application file
namespace Mautic\CoreBundle\Entity; | |
use Doctrine\DBAL\Types\Types; | |
use Doctrine\ORM\Mapping as ORM; | |
use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder; | |
use Mautic\UserBundle\Entity\User; | |
class Notification | |
{ | |
/** | |
* @var int|null | |
*/ | |
protected $id; | |
/** | |
* @var User|null | |
*/ | |
protected $user; | |
/** | |
* @var string|null | |
*/ | |
protected $type; | |
/** | |
* @var string|null | |
*/ | |
protected $header; | |
/** | |
* @var string|null | |
*/ | |
protected $message; | |
/** | |
* @var \DateTimeInterface|null | |
*/ | |
protected $dateAdded; | |
/** | |
* @var string|null | |
*/ | |
protected $iconClass; | |
/** | |
* @var bool | |
*/ | |
protected $isRead = false; | |
/** | |
* @var string|null | |
*/ | |
protected $deduplicate; | |
public static function loadMetadata(ORM\ClassMetadata $metadata): void | |
{ | |
$builder = new ClassMetadataBuilder($metadata); | |
$builder->setTable('notifications') | |
->setCustomRepositoryClass(NotificationRepository::class) | |
->addIndex(['is_read'], 'notification_read_status') | |
->addIndex(['type'], 'notification_type') | |
->addIndex(['is_read', 'user_id'], 'notification_user_read_status') | |
->addIndex(['deduplicate', 'date_added'], 'deduplicate_date_added'); | |
$builder->addId(); | |
$builder->createManyToOne('user', User::class) | |
->addJoinColumn('user_id', 'id', false, false, 'CASCADE') | |
->build(); | |
$builder->createField('type', Types::STRING) | |
->nullable() | |
->length(25) | |
->build(); | |
$builder->createField('header', Types::STRING) | |
->nullable() | |
->length(512) | |
->build(); | |
$builder->addField('message', Types::TEXT); | |
$builder->addDateAdded(); | |
$builder->createField('iconClass', Types::STRING) | |
->columnName('icon_class') | |
->nullable() | |
->build(); | |
$builder->createField('isRead', Types::BOOLEAN) | |
->columnName('is_read') | |
->build(); | |
$builder->createField('deduplicate', 'string') | |
->nullable() | |
->length(32) | |
->build(); | |
} | |
/** | |
* @return int|null | |
*/ | |
public function getId() | |
{ | |
return $this->id; | |
} | |
/** | |
* @return User|null | |
*/ | |
public function getUser() | |
{ | |
return $this->user; | |
} | |
public function setUser(User $user): void | |
{ | |
$this->user = $user; | |
} | |
/** | |
* @return string|null | |
*/ | |
public function getType() | |
{ | |
return $this->type; | |
} | |
/** | |
* @param string|null $type | |
*/ | |
public function setType($type): void | |
{ | |
$this->type = $type; | |
} | |
/** | |
* @return string|null | |
*/ | |
public function getMessage() | |
{ | |
return $this->message; | |
} | |
/** | |
* @param string|null $message | |
*/ | |
public function setMessage($message): void | |
{ | |
$this->message = $message; | |
} | |
/** | |
* @return \DateTimeInterface|null | |
*/ | |
public function getDateAdded() | |
{ | |
return $this->dateAdded; | |
} | |
/** | |
* @param \DateTime|null $dateAdded | |
*/ | |
public function setDateAdded($dateAdded): void | |
{ | |
$this->dateAdded = $dateAdded; | |
} | |
/** | |
* @return string|null | |
*/ | |
public function getIconClass() | |
{ | |
return $this->iconClass; | |
} | |
/** | |
* @param string|null $iconClass | |
*/ | |
public function setIconClass($iconClass): void | |
{ | |
$this->iconClass = $iconClass; | |
} | |
/** | |
* @return bool|null | |
*/ | |
public function getIsRead() | |
{ | |
return $this->isRead; | |
} | |
/** | |
* @param bool|null $isRead | |
*/ | |
public function setIsRead($isRead): void | |
{ | |
$this->isRead = (bool) $isRead; | |
} | |
/** | |
* @return string|null | |
*/ | |
public function getHeader() | |
{ | |
return $this->header; | |
} | |
/** | |
* @param string|null $header | |
*/ | |
public function setHeader($header): void | |
{ | |
$this->header = $header; | |
} | |
public function setDeduplicate(?string $deduplicate): void | |
{ | |
$this->deduplicate = $deduplicate; | |
} | |
} | |