2026-05-22 14:29:22 +08:00
|
|
|
using FileShare_Common.Core;
|
|
|
|
|
using FileShare_Services.Core;
|
2026-05-21 16:45:56 +08:00
|
|
|
|
2026-05-22 14:29:22 +08:00
|
|
|
namespace FileShare_Services.Services.FileLibrary
|
2026-05-21 16:45:56 +08:00
|
|
|
{
|
2026-05-22 14:45:07 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 文件库 HTTP 端点服务接口,将 HTTP 请求适配到 <see cref="IFileLibraryService"/> 业务层。
|
|
|
|
|
/// </summary>
|
2026-05-21 16:45:56 +08:00
|
|
|
public interface IFileLibraryEndpointService
|
|
|
|
|
{
|
2026-05-22 14:45:07 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 获取服务器所有磁盘驱动器。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="ctx">端点上下文。</param>
|
|
|
|
|
/// <returns>API 响应。</returns>
|
2026-05-22 11:18:47 +08:00
|
|
|
Task<IApiResponse> GetDrivesAsync(ServiceEndpointContext ctx);
|
2026-05-21 16:45:56 +08:00
|
|
|
|
2026-05-22 14:45:07 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 查询指定路径下的子目录。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="request">包含路径的查询请求。</param>
|
|
|
|
|
/// <returns>API 响应。</returns>
|
2026-05-22 11:18:47 +08:00
|
|
|
Task<IApiResponse> GetDirectoriesAsync(DirectoryQueryRequest request);
|
2026-05-21 16:45:56 +08:00
|
|
|
|
2026-05-22 14:45:07 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 获取所有已注册的文件库根目录。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="ctx">端点上下文。</param>
|
|
|
|
|
/// <returns>API 响应。</returns>
|
2026-05-22 11:18:47 +08:00
|
|
|
Task<IApiResponse> GetRootsAsync(ServiceEndpointContext ctx);
|
2026-05-21 16:45:56 +08:00
|
|
|
|
2026-05-22 14:45:07 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 添加新的文件库根目录。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="request">包含路径和配置的请求。</param>
|
|
|
|
|
/// <returns>API 响应。</returns>
|
2026-05-22 11:18:47 +08:00
|
|
|
Task<IApiResponse> AddRootAsync(AddLibraryRootRequest request);
|
2026-05-21 16:45:56 +08:00
|
|
|
|
2026-05-22 14:45:07 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 启用或禁用指定的文件库根目录。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="request">包含根目录 ID 和目标状态的请求。</param>
|
|
|
|
|
/// <returns>API 响应。</returns>
|
2026-05-22 11:18:47 +08:00
|
|
|
Task<IApiResponse> SetRootEnabledAsync(UpdateLibraryRootRequest request);
|
2026-05-21 16:45:56 +08:00
|
|
|
|
2026-05-22 14:45:07 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 删除指定的文件库根目录。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="request">包含根目录 ID 的请求。</param>
|
|
|
|
|
/// <returns>API 响应。</returns>
|
2026-05-22 11:18:47 +08:00
|
|
|
Task<IApiResponse> DeleteRootAsync(DeleteLibraryRootRequest request);
|
2026-05-21 16:45:56 +08:00
|
|
|
|
2026-05-22 14:45:07 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 立即扫描指定文件库根目录。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="request">包含根目录 ID 的请求。</param>
|
|
|
|
|
/// <returns>API 响应。</returns>
|
2026-05-22 11:18:47 +08:00
|
|
|
Task<IApiResponse> ScanRootAsync(ScanLibraryRootRequest request);
|
2026-05-21 16:45:56 +08:00
|
|
|
|
2026-05-22 14:45:07 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 分页搜索已扫描的文件记录。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="request">包含分页和过滤条件的请求。</param>
|
|
|
|
|
/// <returns>API 响应。</returns>
|
2026-05-22 11:18:47 +08:00
|
|
|
Task<IApiResponse> SearchFilesAsync(SearchFilesRequest request);
|
2026-05-21 16:45:56 +08:00
|
|
|
|
2026-05-22 14:45:07 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 根据 ID 获取文件详情。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="request">包含文件 ID 的请求。</param>
|
|
|
|
|
/// <returns>API 响应。</returns>
|
2026-05-22 11:18:47 +08:00
|
|
|
Task<IApiResponse> GetFileAsync(FileQueryRequest request);
|
2026-05-21 16:45:56 +08:00
|
|
|
|
2026-05-22 14:45:07 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 获取文本文件预览内容。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="request">包含文件 ID 的请求。</param>
|
|
|
|
|
/// <returns>API 响应。</returns>
|
2026-05-22 11:18:47 +08:00
|
|
|
Task<IApiResponse> GetTextPreviewAsync(FileQueryRequest request);
|
2026-05-22 11:59:45 +08:00
|
|
|
|
2026-05-22 14:45:07 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 浏览文件库目录结构。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="request">包含根目录 ID 和路径的请求。</param>
|
|
|
|
|
/// <returns>API 响应。</returns>
|
2026-05-22 11:59:45 +08:00
|
|
|
Task<IApiResponse> BrowseDirectoryAsync(BrowseDirectoryRequest request);
|
2026-05-22 17:01:49 +08:00
|
|
|
|
2026-05-22 17:11:11 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 获取最近添加或最近播放的文件列表。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="request">包含类型和数量的请求。</param>
|
|
|
|
|
/// <returns>API 响应。</returns>
|
2026-05-22 17:01:49 +08:00
|
|
|
Task<IApiResponse> GetRecentFilesAsync(RecentFilesRequest request);
|
|
|
|
|
|
2026-05-22 17:11:11 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 标记文件为已播放,更新最近播放时间。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="request">包含文件 ID 的请求。</param>
|
|
|
|
|
/// <returns>API 响应。</returns>
|
2026-05-22 17:01:49 +08:00
|
|
|
Task<IApiResponse> MarkFilePlayedAsync(MarkFilePlayedRequest request);
|
2026-05-22 17:44:04 +08:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 保存文件播放进度位置。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="request">包含文件 ID 和播放位置的请求。</param>
|
|
|
|
|
/// <returns>API 响应。</returns>
|
|
|
|
|
Task<IApiResponse> SaveFileProgressAsync(SaveFileProgressRequest request);
|
2026-05-21 16:45:56 +08:00
|
|
|
}
|
|
|
|
|
}
|