using System.ComponentModel;
using System.Reflection;
namespace Pf2e.Scrapper.Processors.Attributes;
///
/// Перечисление для групп обработчиков.
///
public enum ProcessorGroupEnum
{
///
/// Общий обработчик.
///
[Description("Общие процессоры")]
General,
///
/// Обработчик для подготовки данных с сайта Archives of Nethys Pathfinder 2e.
///
[Description("Архивы Нефиса: Подготовка")]
AonprdPreparation,
///
/// Обработчик основных сущностей с сайта Archives of Nethys Pathfinder 2e.
///
[Description("Архивы Нефиса: Основные сущности")]
AonprdEntities,
///
/// Обработчик подклассов с сайта Archives of Nethys Pathfinder 2e.
///
[Description("Архивы Нефиса: Подклассы")]
AonprdSubclasses,
///
/// Обработчик для завершения обработки данных с сайта Archives of Nethys Pathfinder 2e.
///
[Description("Архивы Нефиса: Завершение")]
AonprdFinalization,
///
/// Обработчик для подготовки данных из модуля pf2e для FoundryVTT.
///
[Description("Foundry EN: Подготовка")]
FoundryEnPreparation,
///
/// Обработчик основных сущностей из модуля pf2e для FoundryVTT.
///
[Description("Foundry EN: Основные сущности")]
FoundryEnEntities,
}
///
/// Перечисление для типов компендиумов обработчиков.
///
public enum ProcessorCompendiumEnum
{
///
/// Компедиум Архивов Нефиса.
///
Aonprd,
///
/// Компедиум Foundry EN.
///
FoundryEn,
}
///
/// Перечисление для типов фабрик обработчиков.
///
public enum ProcessorFactoryTypeEnum
{
///
/// Простая фабрика одиночного обработчика.
///
Simple,
///
/// Фабрика для создания обработчиков, которые могут обрабатывать типы данных компедиума.
///
Compendium,
///
/// Фабрика для создания обработчиков, которые могут обрабатывать итераторы данных.
///
Iterator,
}
///
/// Расширение для перечисления .
///
public static class ProcessorGroupEnumExtension
{
///
/// Получает описание группы обработчика из атрибута .
///
/// Перечисление группы обработчика.
/// Строка с описанием группы обработчика.
public static string GetDescription(this ProcessorGroupEnum group)
{
return group
.GetType()
.GetField(group.ToString())
?.GetCustomAttribute()
?.Description ?? group.ToString();
}
}