140 lines
3.5 KiB
C#
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
|
|
}
|
|
}
|