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; }
}