using System.Threading;
using Dpz.Core.Public.ViewModel.Request;
using Dpz.Core.Public.ViewModel.Response;

namespace Dpz.Core.Service.RepositoryService;

public interface IPictureRecordService : ICacheService
{
    /// <summary>
    /// 获取所有相册标签
    /// </summary>
    /// <returns></returns>
    Task<List<string>> GetTagsAsync();

    /// <summary>
    /// 获取所有Banner
    /// </summary>
    /// <returns></returns>
    Task<ICollection<PictureRecordResponse>> GetBannerAsync();

    /// <summary>
    /// 分页获取相册信息
    /// </summary>
    /// <param name="tags"></param>
    /// <param name="description"></param>
    /// <param name="pageIndex"></param>
    /// <param name="pageSize"></param>
    /// <param name="account">相册上传人</param>
    /// <returns></returns>
    Task<IPagedList<PictureRecordResponse>> GetPagesAsync(
        List<string>? tags,
        string? description,
        int pageIndex = 1,
        int pageSize = 20,
        string? account = null
    );

    /// <summary>
    /// 获取相册信息
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    Task<PictureRecordResponse?> GetPictureRecordAsync(string id);

    /// <summary>
    /// 创建一个相册记录
    /// </summary>
    /// <param name="request"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<PictureRecordResponse> CreateRecordAsync(
        CreatePictureRecordRequest request,
        CancellationToken cancellationToken = default
    );

    /// <summary>
    /// 修改相册信息
    /// </summary>
    /// <param name="request"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<PictureRecordResponse?> ChangeInformationAsync(
        EditPictureRecordRequest request,
        CancellationToken cancellationToken = default
    );

    /// <summary>
    /// 删除
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    Task DeleteAsync(string id);

    /// <summary>
    /// 清除缓存
    /// </summary>
    /// <returns></returns>
    Task ClearCacheAsync();
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

IPictureRecordService 接口解析

这是一个用于管理相册记录的C#服务接口,主要功能包括相册标签管理、相册内容管理和缓存管理。以下是详细的功能说明:

1. 标签管理

  • GetTagsAsync(): 获取所有相册标签的列表

2. 相册内容管理

  • 获取功能:

    • GetBannerAsync(): 获取所有Banner图片记录
    • GetPagesAsync(): 分页获取相册信息,支持按标签、描述和上传人筛选
    • GetPictureRecordAsync(): 根据ID获取单个相册记录
  • 增删改功能:

    • CreateRecordAsync(): 创建新的相册记录
    • ChangeInformationAsync(): 修改相册信息
    • DeleteAsync(): 删除相册记录

3. 缓存管理

  • ClearCacheAsync(): 清除缓存(继承自ICacheService接口)

设计特点

  1. 异步支持:所有方法都是异步的,返回Task或Task
  2. 分页支持:通过GetPagesAsync方法提供分页功能
  3. 灵活的查询:支持按标签、描述和上传人筛选相册
  4. 缓存集成:继承了ICacheService接口,提供缓存功能

这个接口定义了一个完整的相册管理系统的基础功能,适合用于图片分享、相册管理等应用场景。

评论加载中...