WorkCamera/client/WorkCameraExport/Services/Interfaces/IApiService.cs
2026-01-05 23:58:56 +08:00

140 lines
3.5 KiB
C#

using WorkCameraExport.Models;
namespace WorkCameraExport.Services.Interfaces
{
/// <summary>
/// API 通信服务接口
/// </summary>
public interface IApiService : IDisposable
{
#region
/// <summary>
/// 用户登录
/// </summary>
Task<(bool Success, string Message, LoginResponse? Data)> LoginAsync(
string username, string password, string code = "", string uuid = "");
/// <summary>
/// 刷新 Token
/// </summary>
Task<bool> RefreshTokenAsync();
/// <summary>
/// 退出登录
/// </summary>
void Logout();
/// <summary>
/// 检查是否已登录
/// </summary>
bool IsLoggedIn { get; }
/// <summary>
/// 检查 Token 是否即将过期
/// </summary>
bool IsTokenExpiringSoon { get; }
#endregion
#region
/// <summary>
/// 获取统计信息
/// </summary>
Task<(bool Success, string Message, StatisticsDto? Data)> GetStatisticsAsync();
#endregion
#region
/// <summary>
/// 查询工作记录列表
/// </summary>
Task<(bool Success, string Message, PagedData<WorkRecordDto>? Data)> GetWorkRecordsAsync(
WorkRecordQueryDto query);
/// <summary>
/// 获取单条工作记录
/// </summary>
Task<(bool Success, string Message, WorkRecordDto? Data)> GetWorkRecordAsync(int id);
/// <summary>
/// 新增工作记录
/// </summary>
Task<(bool Success, string Message, int? Id)> AddWorkRecordAsync(WorkRecordSaveDto record);
/// <summary>
/// 更新工作记录
/// </summary>
Task<(bool Success, string Message)> UpdateWorkRecordAsync(WorkRecordSaveDto record);
/// <summary>
/// 删除工作记录
/// </summary>
Task<(bool Success, string Message)> DeleteWorkRecordAsync(int id);
#endregion
#region
/// <summary>
/// 获取月报表数据
/// </summary>
Task<(bool Success, string Message, List<MonthlyReportDto>? Data)> GetMonthlyReportAsync(
MonthReportQueryDto query);
/// <summary>
/// 获取指定月份的所有图片
/// </summary>
Task<(bool Success, string Message, List<MonthImageDto>? Data)> GetMonthImagesAsync(
string yearMonth);
#endregion
#region
/// <summary>
/// 下载图片
/// </summary>
Task<(bool Success, byte[]? Data, string Message)> DownloadImageAsync(
string imageUrl, CancellationToken cancellationToken = default);
#endregion
#region
/// <summary>
/// 设置服务器地址
/// </summary>
void SetBaseUrl(string baseUrl);
/// <summary>
/// 设置认证 Token
/// </summary>
void SetToken(string token);
/// <summary>
/// 设置 Token 及其过期时间
/// </summary>
void SetToken(string token, DateTime expireTime);
/// <summary>
/// 设置刷新 Token
/// </summary>
void SetRefreshToken(string refreshToken);
/// <summary>
/// 获取当前 Token
/// </summary>
string GetToken();
/// <summary>
/// 获取 Token 过期时间
/// </summary>
DateTime GetTokenExpireTime();
#endregion
}
}