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