using QYZH.InteractiveMagazine.Models.Enum; namespace QYZH.InteractiveMagazine.Models.Dto.Compensation; /// /// 创建补偿任务输入 /// public class CreateCompensationTaskInput { /// /// 任务类型(使用 CompensationTaskTypeEnum 枚举) /// public CompensationTaskTypeEnum TaskType { get; set; } /// /// 业务来源(如 CheckIn、Purchase) /// public string BusinessSource { get; set; } = string.Empty; /// /// 关联业务记录Id /// public string? BusinessId { get; set; } /// /// 关联用户Id /// public long UserId { get; set; } /// /// 处理参数(匿名对象或字典,会自动序列化为JSON) /// public object Payload { get; set; } = new { }; /// /// 异常消息 /// public string ErrorMessage { get; set; } = string.Empty; /// /// 异常来源(类名.方法名,如 CheckInService.CheckInAsync) /// public string ErrorSource { get; set; } = string.Empty; /// /// 最大重试次数(默认3次) /// public int MaxRetries { get; set; } = 3; } /// /// 补偿任务输出 /// public class CompensationTaskOutput { public long Id { get; set; } public CompensationTaskTypeEnum TaskType { get; set; } public string BusinessSource { get; set; } = string.Empty; public string? BusinessId { get; set; } public long UserId { get; set; } public string Payload { get; set; } = string.Empty; public string ErrorMessage { get; set; } = string.Empty; public string ErrorSource { get; set; } = string.Empty; public int RetryCount { get; set; } public int MaxRetries { get; set; } public CompensationTaskStatusEnum Status { get; set; } public DateTime? ProcessedAt { get; set; } public DateTime? ScheduledAt { get; set; } public string? ResultMessage { get; set; } public DateTime CreatedAt { get; set; } } /// /// 查询补偿任务输入(供外部项目按条件拉取) /// public class GetCompensationTasksInput { /// /// 按状态筛选 /// public CompensationTaskStatusEnum? Status { get; set; } /// /// 按任务类型筛选 /// public CompensationTaskTypeEnum? TaskType { get; set; } /// /// 按业务来源筛选 /// public string? BusinessSource { get; set; } /// /// 获取数量上限(默认50) /// public int Limit { get; set; } = 50; } /// /// 更新补偿任务状态输入(供外部处理项目回调) /// public class UpdateCompensationStatusInput { /// /// 目标状态(使用 CompensationTaskStatusEnum 枚举) /// public CompensationTaskStatusEnum Status { get; set; } /// /// 处理结果描述 /// public string? ResultMessage { get; set; } /// /// 更新重试次数(可选) /// public int? RetryCount { get; set; } /// /// 下次计划执行时间(用于退避重试,可选) /// public DateTime? ScheduledAt { get; set; } }