using System;
namespace Svrnty.CQRS.Sagas.RabbitMQ;
///
/// Configuration options for RabbitMQ saga transport.
///
public class RabbitMqSagaOptions
{
///
/// RabbitMQ host name (default: localhost).
///
public string HostName { get; set; } = "localhost";
///
/// RabbitMQ port (default: 5672).
///
public int Port { get; set; } = 5672;
///
/// RabbitMQ user name (default: guest).
///
public string UserName { get; set; } = "guest";
///
/// RabbitMQ password (default: guest).
///
public string Password { get; set; } = "guest";
///
/// RabbitMQ virtual host (default: /).
///
public string VirtualHost { get; set; } = "/";
///
/// Exchange name for saga commands (default: svrnty.sagas.commands).
///
public string CommandExchange { get; set; } = "svrnty.sagas.commands";
///
/// Exchange name for saga responses (default: svrnty.sagas.responses).
///
public string ResponseExchange { get; set; } = "svrnty.sagas.responses";
///
/// Queue name prefix for this service (default: saga-service).
///
public string QueuePrefix { get; set; } = "saga-service";
///
/// Whether to use durable queues (default: true).
///
public bool DurableQueues { get; set; } = true;
///
/// Prefetch count for consumers (default: 10).
///
public ushort PrefetchCount { get; set; } = 10;
///
/// Connection retry delay (default: 5 seconds).
///
public TimeSpan ConnectionRetryDelay { get; set; } = TimeSpan.FromSeconds(5);
///
/// Maximum connection retry attempts (default: 10).
///
public int MaxConnectionRetries { get; set; } = 10;
}