<?php

namespace PublishPress\FuturePro\Modules\Notifications\Interfaces;

use PublishPress\FuturePro\Modules\Workflows\Interfaces\EventDrivenActionModelInterface;

interface NotificationModelInterface
{
    public function load(int $notificationId): bool;

    public function loadFromRow(array $row): bool;

    public function createSuccess(): ?int;

    public function createError(): ?int;

    public function createWarning(): ?int;

    public function createInfo(): ?int;

    public function create(array $dismissEventDrivenActionArgs = []): ?int;

    public function markAsRead(): bool;

    public function loaded(): bool;

    public function belongsToCurrentUser(): bool;

    public function update(): bool;
}
