namespace Pf2e.Scrapper.Importers.Implementations.Aonprd.Compendium; /// /// Ссылка на сущность с указанием файла, в котором она хранится. /// /// Идентификатор сущности. /// Имя файла. public class AonprdCompendiumItem(string id, string file) : AbstractCompendiumItem { /// /// Идентификатор сущности. /// public override string Id { get; } = id; /// /// Тип сущности. /// public override string Type { get; } = ResolveType(id); /// /// Имя файла, в котором хранится сущность. /// public string File { get; } = file; /// /// Определение типа сущности как префикса идентификатора. /// public static string ResolveType(string id) { string type = string.Join('-', id.Split('-')[..^1]); return SubType(type, "equipment") ?? SubType(type, "weapon") ?? type; static string? SubType(string type, string cat) { return type.StartsWith($"{cat}-") && type != cat ? type.EndsWith("-bonus") ? $"{cat}-bonus" : $"{cat}-sub" : null; } } }