using System.Text.Json.Serialization;

namespace PARR.Domain.Enums
{
    /// <summary>
    /// Компоненты ПАРР
    /// </summary>
    [JsonConverter(typeof(JsonStringEnumConverter))]
    public enum ParrComponentsEnum
    {
        // Тут указываем только Worker`ы
        // !!! При добавлении новых, добавлять в DataContext !!!

        /// <summary>
        /// API
        /// </summary>
        Api = 0,

        /// <summary>
        /// Загрузчик из АИХИТ
        /// </summary>
        AihitLoader = 1,

        /// <summary>
        /// Синхронизатор АИХИТ
        /// </summary>
        AihitSyncer = 2,

        /// <summary>
        /// Загрузчик нарядов из ЕСПП
        /// </summary>
        EsppOrderLoader = 3,

        /// <summary>
        /// Управление нарядами ЕСПП
        /// </summary>
        EsppOrderManager = 4,

        /// <summary>
        /// Синхронизатор расписаний
        /// </summary>
        EsppScheduleSync = 5,

        /// <summary>
        /// Синхронизатор шаблонов
        /// </summary>
        EsppTemplateSync = 6,

        /// <summary>
        /// Генератор шаблонов
        /// </summary>
        GeneratorTemplates = 7,

        /// <summary>
        /// Авто-контроль РР
        /// </summary>
        JobAutoControl = 8,

        /// <summary>
        /// Связывание нарядов ЕСПП с ПАРР (шаблонами, агентами)
        /// </summary>
        Master = 9,

        /// <summary>
        /// Рассчет даты следующего срабатывания
        /// </summary>
        NextRun = 10,

        /// <summary>
        /// Активатор шаблонов / расписаний
        /// </summary>
        TemplateActivator = 11,

        /// <summary>
        /// Автораспределение РР
        /// </summary>
        TemplateDistributor = 12,

        /// <summary>
        /// Генератор Template
        /// </summary>
        TemplateTaskGenerator = 13,

        /// <summary>
        /// Генератор кэша отчетов Workload
        /// </summary>
        WorkloadBuilder = 14
    }
}
