namespace StellaOps.Notifier.Worker.Channels;
///
/// Configuration options for channel adapters.
///
public sealed class ChannelAdapterOptions
{
///
/// Configuration section name.
///
public const string SectionName = "ChannelAdapters";
///
/// Maximum number of retry attempts for failed dispatches.
///
public int MaxRetries { get; set; } = 3;
///
/// Base delay for exponential backoff between retries.
///
public TimeSpan RetryBaseDelay { get; set; } = TimeSpan.FromSeconds(1);
///
/// Maximum delay between retries.
///
public TimeSpan RetryMaxDelay { get; set; } = TimeSpan.FromSeconds(30);
///
/// Timeout for individual dispatch operations.
///
public TimeSpan DispatchTimeout { get; set; } = TimeSpan.FromSeconds(30);
///
/// Enable HMAC signing for webhook payloads.
///
public bool EnableHmacSigning { get; set; } = true;
///
/// User agent string for HTTP requests.
///
public string UserAgent { get; set; } = "StellaOps-Notifier/1.0";
///
/// Default concurrency limit per channel type.
///
public int DefaultConcurrency { get; set; } = 10;
///
/// Enable circuit breaker for unhealthy channels.
///
public bool EnableCircuitBreaker { get; set; } = true;
///
/// Number of consecutive failures before circuit opens.
///
public int CircuitBreakerThreshold { get; set; } = 5;
///
/// Duration to keep circuit open before allowing retry.
///
public TimeSpan CircuitBreakerDuration { get; set; } = TimeSpan.FromMinutes(1);
}