using Foxel.Models.DataBase; namespace Foxel.Services.Background; /// /// 后台任务队列接口 /// public interface IBackgroundTaskQueue { /// /// 将图片处理任务添加到队列 /// /// 图片ID /// 原始图片路径 /// 任务ID Task QueuePictureProcessingTaskAsync(int pictureId, string originalFilePath); /// /// 获取用户的所有任务状态 /// /// 用户ID /// 该用户的任务状态列表 Task> GetUserTasksStatusAsync(int userId); /// /// 获取特定图片的处理状态 /// /// 图片ID /// 处理状态 Task GetPictureProcessingStatusAsync(int pictureId); /// /// 恢复未完成的任务 /// Task RestoreUnfinishedTasksAsync(); } /// /// 图片处理状态 /// public class PictureProcessingStatus { public int PictureId { get; set; } public Guid TaskId { get; set; } public string PictureName { get; set; } = string.Empty; public ProcessingStatus Status { get; set; } public int Progress { get; set; } // 0-100 public string? Error { get; set; } public DateTime CreatedAt { get; set; } public DateTime? CompletedAt { get; set; } }