using PARR.Domain.Settings;

namespace PARR.TemplateMatcher.Settings
{
    internal class MqSettings
    {
        public TemplateMatcher TemplateMatcher { get; set; } = new TemplateMatcher();
        public TemplateGenerator TemplateGenerator { get; set; } = new TemplateGenerator();
        public TemplateUpdater TemplateUpdater { get; set; } = new TemplateUpdater();
    }

    internal class TemplateMatcher : 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;
    }

    internal class TemplateGenerator : 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;
    }

    internal class TemplateUpdater : 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;
    }
}
