public class KafkaOptions
{
    public const string Section = "Kafka";
    public string BootstrapServers { get; set; } = null!;
    public KafkaTopicOptions Topics { get; set; } = null!;
    public int NumPartitions { get; set; } = 6;
    public short ReplicationFactor { get; set; } = 3;
    public int OutboxBatchSize { get; set; } = 100;
    public int OutboxPollIntervalMs { get; set; } = 500;
    public int OutboxMaxRetries { get; set; } = 10;
    public int MaxPoisonRetries { get; set; } = 5;
    public string NotificationPublisherGroupId { get; set; } = "notification-publisher";
    public string NotificationPublisherAutoOffsetReset { get; set; } = "Earliest";

    /// <summary>Plaintext for local compose; SaslSsl (etc.) for production.</summary>
    public string SecurityProtocol { get; set; } = "Plaintext";
    public string? SaslMechanism { get; set; }
    public string? SaslUsername { get; set; }
    public string? SaslPassword { get; set; }
    public string? SslCaLocation { get; set; }
}
