namespace PARR.Domain.Settings
{
    /// <summary>
    /// Поля настроек MQ, используется для appsettings.json
    /// </summary>
    public interface IMqSettings
    {
        string HostName { get; init; }
        string QueueName { get; init; }
        string User { get; init; }
        string Password { get; init; }

        /// <summary>
        /// Кол-во сообщений которые может принимать consumer за один раз. 0 или null - без ограничений
        /// </summary>
        ushort? PrefetchCount { get; init; }
    }

    public record MqSettingsBase : IMqSettings
    {
        public string HostName { get; init; } = string.Empty;
        public string QueueName { get; init; } = string.Empty;
        public string User { get; init; } = string.Empty;
        public string Password { get; init; } = string.Empty;
        public ushort? PrefetchCount { get; init; } = 0;
    }
}
