namespace FutureMailAPI.DTOs { public class ApiResponse { public bool Success { get; set; } public string Message { get; set; } = string.Empty; public T? Data { get; set; } public List? Errors { get; set; } public static ApiResponse SuccessResult(T data, string message = "操作成功") { return new ApiResponse { Success = true, Message = message, Data = data }; } public static ApiResponse ErrorResult(string message, List? errors = null) { return new ApiResponse { Success = false, Message = message, Errors = errors }; } } public class PagedResponse { public IEnumerable Items { get; set; } = new List(); public int PageIndex { get; set; } public int PageSize { get; set; } public int TotalCount { get; set; } public int TotalPages { get; set; } public bool HasPreviousPage { get; set; } public bool HasNextPage { get; set; } public PagedResponse(IEnumerable items, int pageIndex, int pageSize, int totalCount) { Items = items; PageIndex = pageIndex; PageSize = pageSize; TotalCount = totalCount; TotalPages = (int)Math.Ceiling(totalCount / (double)pageSize); HasPreviousPage = pageIndex > 1; HasNextPage = pageIndex < TotalPages; } } public class AuthResponseDto { public UserResponseDto User { get; set; } = new(); public string Token { get; set; } = string.Empty; public string RefreshToken { get; set; } = string.Empty; public int ExpiresIn { get; set; } = 3600; // 默认1小时过期 } }