using Nexus.Api.Data;
using Nexus.Api.Models;

namespace Nexus.Api.Services;

public interface INotificationService
{
    Task<Notification> CreateAsync(string type, string title, string? message, string forUser, Guid? taskId = null, CancellationToken ct = default);
    Task<IReadOnlyList<Notification>> GetForUserAsync(string forUser, int limit = 50, bool unreadOnly = false, CancellationToken ct = default);
    Task<bool> MarkAsReadAsync(Guid id, CancellationToken ct = default);
    Task<int> MarkAllAsReadAsync(string forUser, CancellationToken ct = default);
    Task<int> GetUnreadCountAsync(string forUser, CancellationToken ct = default);
}
