using dy.net.model.dto; using SqlSugar; namespace dy.net.model.entity { [SugarTable(TableName = "openlist_transfer_job")] [SugarIndex("idx_openlist_transfer_target", nameof(ConfigurationFingerprint), OrderByType.Asc, nameof(LogicalTargetPath), OrderByType.Asc, nameof(Status), OrderByType.Asc)] public sealed class OpenListTransferJob { [SugarColumn(IsPrimaryKey = true, Length = 50)] public string Id { get; set; } public OpenListTransferStatus Status { get; set; } [SugarColumn(Length = 128)] public string ConfigurationFingerprint { get; set; } [SugarColumn(Length = 2000)] public string LogicalTargetPath { get; set; } [SugarColumn(Length = 2000)] public string ActualTargetPath { get; set; } [SugarColumn(Length = 2000)] public string LocalSourcePath { get; set; } [SugarColumn(Length = 2000)] public string OpenListSourcePath { get; set; } [SugarColumn(Length = 2000)] public string StagedTargetPath { get; set; } [SugarColumn(Length = 2000, IsNullable = true)] public string BackupTargetPath { get; set; } public long ExpectedLength { get; set; } [SugarColumn(Length = 200, IsNullable = true)] public string ExternalTaskId { get; set; } public double ExternalProgress { get; set; } public int Attempts { get; set; } [SugarColumn(IsNullable = true)] public DateTime? ExternalTaskStartedAt { get; set; } [SugarColumn(IsNullable = true)] public DateTime? LastProgressAt { get; set; } [SugarColumn(IsNullable = true)] public DateTime? NextAttemptAt { get; set; } [SugarColumn(Length = 50, IsNullable = true)] public string LeaseOwner { get; set; } [SugarColumn(IsNullable = true)] public DateTime? LeaseUntil { get; set; } [SugarColumn(ColumnDataType = "TEXT", Length = -1, IsNullable = true)] public string ErrorMessage { get; set; } public DateTime CreatedAt { get; set; } public DateTime UpdatedAt { get; set; } [SugarColumn(IsNullable = true)] public DateTime? CompletedAt { get; set; } } }