using PARR.BLL.Contracts.Interfaces;

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; set; } = string.Empty;
        public string QueueName { get; set; } = string.Empty;
        public string User { get; set; } = string.Empty;
        public string Password { get; set; } = string.Empty;
        public ushort? PrefetchCount { get; set; } = 0;
    }

    internal class TemplateGenerator : IMqSettings
    {
        public string HostName { get; set; } = string.Empty;
        public string QueueName { get; set; } = string.Empty;
        public string User { get; set; } = string.Empty;
        public string Password { get; set; } = string.Empty;
        public ushort? PrefetchCount { get; set; } = 0;
    }

    internal class TemplateUpdater : IMqSettings
    {
        public string HostName { get; set; } = string.Empty;
        public string QueueName { get; set; } = string.Empty;
        public string User { get; set; } = string.Empty;
        public string Password { get; set; } = string.Empty;
        public ushort? PrefetchCount { get; set; } = 0;
    }
}
