Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
1 / 1
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3declare(strict_types=1);
4
5/** @license For full copyright and license information, please see the LICENSE.md file. */
6
7namespace App\Modules\Comments\Application\Service;
8
9defined('AMMONLY_APP') || exit('Direct script access is forbidden.');
10
11use App\Modules\Comments\Application\DTO\CommentMentionsInboxDto;
12
13/**
14 * Interface defining contract for querying mentions inbox and managing read watermarks.
15 *
16 * @package App\Modules\Comments\Application\Service
17 */
18interface CommentMentionsQueryServiceInterface
19{
20    /**
21     * Retrieves mentions inbox DTO for the given user, scope, and optional search query.
22     */
23    public function getInbox(
24        int $userId,
25        string $scope = 'unread',
26        string $query = '',
27        int $limit = 50,
28        int $offset = 0
29    ): CommentMentionsInboxDto;
30
31    /**
32     * Gets unread mentions counter for topbar badge.
33     */
34    public function getUnreadCount(int $userId): int;
35
36    /**
37     * Marks all mentions as read up to current timestamp.
38     */
39    public function markAllAsRead(int $userId): void;
40
41    /**
42     * Marks mentions as read up to the creation date of a specific comment.
43     */
44    public function markAsReadUpToComment(int $userId, int $commentId): void;
45}