using FreeSql.DataAnnotations; namespace FATrace.Model { /// /// 下载任务实体(持久化队列项) /// 表示一条从海康 NVR 下载视频的计划与执行状态 /// [Table(Name = "DownloadTask")] public class DownloadTask { /// /// 自增主键。 /// [Column(IsPrimary = true, IsIdentity = true)] public long Id { get; set; } /// /// 业务条码/编号 /// 内袋二维码 /// [Column(StringLength = 100, IsNullable = false)] public string? Code { get; set; } /// /// 原料名称 /// [Column(StringLength = 100, IsNullable = true)] public string? RawName { get; set; }=""; /// /// 原料条码 /// [Column(StringLength = 100, IsNullable = false)] public string? RawCode { get; set; } /// /// 操作用户标识 /// [Column(StringLength = 100, IsNullable = false)] public string? User { get; set; } /// /// 任务状态:Pending/Running/Completed/Failed/Canceled /// [Column(IsNullable = false)] public TaskStatus Status { get; set; } = TaskStatus.Pending; /// /// 下载进度 0-100 /// [Column(IsNullable = false)] public short Progress { get; set; } = 0; /// /// 目标视频保存路径(生成的本地文件全路径) /// [Column(StringLength = 200)] public string? VideoFilePath { get; set; } /// /// 失败时的错误信息 /// [Column(StringLength = 500)] public string? Error { get; set; }=""; /// /// 已尝试次数(每次 Running 前加一) /// [Column(IsNullable = false)] public int TryCount { get; set; } = 0; /// /// NVR 下载的开始时间(默认当前时间 - 30秒) /// [Column(IsNullable = false)] public DateTime NvrStartTime { get; set; } /// /// NVR 下载的结束时间(默认当前时间) /// [Column(IsNullable = false)] public DateTime NvrEndTime { get; set; } /// /// 创建时间 /// [Column(ServerTime = DateTimeKind.Local, CanUpdate = true)] public DateTime CreateTime { get; set; } /// /// 最近一次更新时间 /// [Column(ServerTime = DateTimeKind.Local, CanUpdate = true)] public DateTime UpdateTime { get; set; } } }