. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Entities; use Espo\Core\Field\Link; use Espo\Core\Field\LinkParent; use Espo\Core\ORM\Entity; use stdClass; class Notification extends Entity { public const ENTITY_TYPE = 'Notification'; public const TYPE_ENTITY_REMOVED = 'EntityRemoved'; public const TYPE_ASSIGN = 'Assign'; public const TYPE_COLLABORATING = 'Collaborating'; public const TYPE_EMAIL_RECEIVED = 'EmailReceived'; public const TYPE_NOTE = 'Note'; public const TYPE_MENTION_IN_POST = 'MentionInPost'; public const TYPE_MESSAGE = 'Message'; public const TYPE_USER_REACTION = 'UserReaction'; public const TYPE_SYSTEM = 'System'; public const ATTR_READ = 'read'; public const ATTR_USER_ID = 'userId'; public const ATTR_ACTION_ID = 'actionId'; public const ATTR_NUMBER = 'number'; public function getType(): ?string { return $this->get('type'); } public function setMessage(?string $message): self { $this->set('message', $message); return $this; } public function setType(string $type): self { $this->set('type', $type); return $this; } public function getData(): ?stdClass { return $this->get('data'); } public function getUserId(): ?string { return $this->get('userId'); } /** * @param stdClass|array $data */ public function setData(stdClass|array $data): self { $this->set('data', $data); return $this; } public function setUserId(string $userId): self { $this->set('userId', $userId); return $this; } public function getCreatedBy(): ?Link { /** @var ?Link */ return $this->getValueObject('createdBy'); } public function getRelated(): ?LinkParent { /** @var ?LinkParent */ return $this->getValueObject('related'); } /** * Note: 'relatedName' is not loaded for a performance reason. Pass 'relatedName' in 'data'. */ public function setRelated(LinkParent|Entity|null $related): self { if ($related instanceof LinkParent) { $this->setValueObject('related', $related); return $this; } $this->relations->set('related', $related); return $this; } public function setRelatedParent(LinkParent|Entity|null $relatedParent): self { if ($relatedParent instanceof LinkParent) { $this->setValueObject('relatedParent', $relatedParent); return $this; } $this->relations->set('relatedParent', $relatedParent); return $this; } public function setRelatedType(?string $relatedType): self { $this->set('relatedType', $relatedType); return $this; } public function setRelatedId(?string $relatedId): self { $this->set('relatedId', $relatedId); return $this; } public function isRead(): bool { return $this->get('read'); } public function setRead(bool $read = true): self { $this->set('read', $read); return $this; } /** * @since 9.2.0 */ public function setActionId(?string $actionId): self { $this->set('actionId', $actionId); return $this; } /** * @since 9.2.0 */ public function getActionId(): ?string { return $this->get('actionId'); } public function setGroupedCount(?int $groupedCount): self { return $this->set('groupedCount', $groupedCount); } }