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; } }