using Dpz.Core.Public.ViewModel.Response;

namespace Dpz.Core.Web.Library.Api;

public interface IHomeCacheService
{
    /// <summary>
    /// 获取缓存数据
    /// </summary>
    /// <returns></returns>
    Task<HomeContainerModel> GetCacheDataAsync();

    /// <summary>
    /// 获取文章所有标签
    /// </summary>
    /// <param name="cancellationToken">传播通知操作应取消的通知令牌</param>
    /// <returns></returns>
    Task<List<string>> GetArticleTagsAsync(CancellationToken cancellationToken = default);

    /// <summary>
    /// 获取最新文章
    /// </summary>
    /// <param name="cancellationToken">传播通知操作应取消的通知令牌</param>
    /// <returns></returns>
    Task<List<ArticleMiniResponse>> GetLatestArticlesAsync(
        CancellationToken cancellationToken = default
    );

    /// <summary>
    /// 获取随机文章
    /// </summary>
    /// <param name="cancellationToken">传播通知操作应取消的通知令牌</param>
    /// <returns></returns>
    Task<List<ArticleMiniResponse>> GetRandomArticlesAsync(
        CancellationToken cancellationToken = default
    );

    /// <summary>
    /// 获取今日新闻
    /// </summary>
    /// <returns></returns>
    Task<TodayNewsModel?> GetTodayNewsAsync();
}
评论加载中...