///
/// Configuration for the promotion retry background job.
/// All values configurable via appsettings.json under "PromotionRetry".
///
public class PromotionRetryOptions
{
public const string Section = "PromotionRetry";
///
/// How often the retry service checks for stuck batches (in seconds).
/// Default: 60 seconds.
///
public int PollIntervalSeconds { get; set; } = 60;
///
/// Initial delay before the first retry attempt (in seconds).
/// Default: 30 seconds.
///
public int InitialDelaySeconds { get; set; } = 30;
///
/// Maximum delay between retries (in seconds). Exponential backoff
/// caps at this value. Default: 900 seconds (15 minutes).
///
public int MaxDelaySeconds { get; set; } = 900;
///
/// Maximum number of retry attempts before the batch is flagged
/// for manual intervention. Default: 10.
///
public int MaxRetryAttempts { get; set; } = 10;
///
/// Backoff multiplier. Each retry delay is multiplied by this value.
/// Default: 2.0 (doubles each time).
///
public double BackoffMultiplier { get; set; } = 2.0;
}