using Dpz.Core.Public.ViewModel.Response;

namespace Dpz.Core.Service.RepositoryService;

public interface ISystemNotificationHistoryService : ICacheService
{
    /// <summary>
    /// 获取最近的系统通知
    /// </summary>
    /// <param name="cancellationToken">传播通知操作应取消的通知令牌</param>
    Task<List<SystemNotificationHistoryResponse>> GetRecentAsync(
        CancellationToken cancellationToken = default
    );

    /// <summary>
    /// 保存一条通知
    /// </summary>
    /// <param name="message">消息内容</param>
    /// <param name="cancellationToken">传播通知操作应取消的通知令牌</param>
    Task SaveAsync(string message, CancellationToken cancellationToken = default);

    /// <summary>
    /// 分页获取系统通知记录
    /// </summary>
    /// <param name="pageIndex">页码</param>
    /// <param name="pageSize">每页条数</param>
    /// <param name="cancellationToken">传播通知操作应取消的通知令牌</param>
    Task<IPagedList<SystemNotificationHistoryResponse>> GetPageAsync(
        int pageIndex,
        int pageSize,
        CancellationToken cancellationToken = default
    );

    /// <summary>
    /// 删除通知记录
    /// </summary>
    /// <param name="id">记录 ID</param>
    /// <param name="cancellationToken">传播通知操作应取消的通知令牌</param>
    Task DeleteAsync(string id, CancellationToken cancellationToken = default);
}
评论加载中...