/// <summary>
/// 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).
/// </summary>
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!;
}