using dy.net.model.dto; using SqlSugar; using MediaStorageType = dy.net.model.dto.StorageType; namespace dy.net.model.entity { [SugarTable(TableName = "video_download_task")] [SugarIndex("idx_video_task_created", nameof(CreatedAt), OrderByType.Desc)] public class VideoDownloadTask { [SugarColumn(IsPrimaryKey = true, Length = 50)] public string Id { get; set; } public VideoTaskType Type { get; set; } public VideoTaskTrigger Trigger { get; set; } public VideoTaskStatus Status { get; set; } [SugarColumn(IsNullable = true)] public VideoTypeEnum? VideoType { get; set; } public MediaStorageType StorageType { get; set; } [SugarColumn(Length = 500)] public string Title { get; set; } [SugarColumn(Length = 128, IsNullable = true)] public string StorageFingerprint { get; set; } public int TotalCount { get; set; } public int PendingCount { get; set; } public int RunningCount { get; set; } public int SuccessCount { get; set; } public int WarningCount { get; set; } public int FailedCount { get; set; } public int SkippedCount { get; set; } public bool IsArchived { get; set; } [SugarColumn(Length = 2000, IsNullable = true)] public string CurrentFile { get; set; } [SugarColumn(ColumnDataType = "TEXT", Length = -1, IsNullable = true)] public string ErrorMessage { get; set; } public DateTime CreatedAt { get; set; } [SugarColumn(IsNullable = true)] public DateTime? StartedAt { get; set; } public DateTime UpdatedAt { get; set; } [SugarColumn(IsNullable = true)] public DateTime? CompletedAt { get; set; } } }