/// /// Tracks individual promotion attempts for a batch. Used by the /// PromotionRetryService to determine retry timing and attempt count. /// Each row represents one attempt (successful or failed). /// public class PromotionAttempt { public Guid Id { get; set; } public Guid BatchId { get; set; } public int AttemptNumber { get; set; } public bool Succeeded { get; set; } public string? ErrorMessage { get; set; } public DateTimeOffset AttemptedAt { get; set; } public DateTimeOffset? NextRetryAt { get; set; } public DigitizationBatch Batch { get; set; } = null!; }