// using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; using Pf2eModel; using Pf2eModel.Model.Enum; #nullable disable namespace Pf2eModel.Migrations { [DbContext(typeof(Pf2eDbContext))] partial class Pf2eDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "9.0.4") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "action_category", new[] { "archetype", "army_tactic", "army_war_action", "class-feat", "class-feature", "familiar", "kingdom_activity", "kingdom_feat", "kingdom_feature", "skill-action", "unknown" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "action_enum", new[] { "1", "1 hour", "1 minute", "1-2", "1-3", "10 minutes", "2", "2-3", "2/2 rounds", "3", "30 minutes", "5 minutes", "free", "free/1", "other", "passive", "reaction", "reaction/1", "reaction/2", "reaction/3", "unknown" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "attribute_values", new[] { "cha", "con", "dex", "free", "int", "str", "wis" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "class_progression_type", new[] { "ancestry_feat", "attribute_increase", "class_feat", "entity", "general_feat", "skill_feat", "skill_increase" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "condition_group", new[] { "abilities", "attitudes", "death", "detection", "senses", "unknown" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "deity_fonts", new[] { "any", "harm", "heal", "none" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "deity_sanctification", new[] { "any", "holy", "unholy" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "deity_type", new[] { "covenant", "deity", "pantheon", "philosophy" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "element_enum", new[] { "air", "earth", "fire", "metal", "universal", "water", "wood" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "entity_rarity", new[] { "common", "rare", "uncommon", "unique" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "entity_type", new[] { "action", "ancestry", "archetype", "background", "backpack", "campaign_feature", "class", "condition", "deity", "deity_category", "domain", "feat", "heritage", "language", "ritual", "rule", "spell", "subclass", "subclass_group", "trait", "unknown" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "feat_category", new[] { "ancestry", "ancestry-feature", "archetype", "bonus", "calling", "campaign-feature", "class", "class-feature", "curse", "deityboon", "general", "pfsboon", "skill", "uncategorized" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "locale_type", new[] { "english", "hobby", "other", "russian" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "size_enum", new[] { "huge", "large", "medium", "small", "tiny" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "source_category", new[] { "adventure-path", "adventures", "blog-posts", "comics", "lost-omens", "rulebook", "society" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "spell_area_type", new[] { "burst", "circle", "cone", "cube", "cuboid", "cylinder", "emanation", "line", "other", "square", "varies" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "spell_damage_category", new[] { "normal", "persistent", "splash" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "spell_damage_kinds", new[] { "any", "damage", "healing" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "spell_tradition", new[] { "all", "arcane", "divine", "elemental", "none", "occult", "primal" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "training_rank", new[] { "expert", "legendary", "master", "mythic", "trained", "untrained" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "trait_type", new[] { "alignment", "class", "regular", "tradition" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "vision_enum", new[] { "dark-vision", "low-light-vision", "normal" }); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("DeityTraining", b => { b.Property("DeityId") .HasColumnType("integer") .HasColumnName("deity_id"); b.Property("SkillsId") .HasColumnType("integer") .HasColumnName("skills_id"); b.HasKey("DeityId", "SkillsId") .HasName("pk_deity_training"); b.HasIndex("SkillsId") .HasDatabaseName("ix_deity_training_skills_id"); b.ToTable("deity_training", (string)null); }); modelBuilder.Entity("EntityKeyword", b => { b.Property("EntitiesId") .HasColumnType("integer") .HasColumnName("entities_id"); b.Property("KeywordsId") .HasColumnType("integer") .HasColumnName("keywords_id"); b.HasKey("EntitiesId", "KeywordsId") .HasName("pk_entity_keyword"); b.HasIndex("KeywordsId") .HasDatabaseName("ix_entity_keyword_keywords_id"); b.ToTable("entity_keyword", (string)null); }); modelBuilder.Entity("EntityTrait", b => { b.Property("EntitiesId") .HasColumnType("integer") .HasColumnName("entities_id"); b.Property("TraitsId") .HasColumnType("integer") .HasColumnName("traits_id"); b.HasKey("EntitiesId", "TraitsId") .HasName("pk_entity_trait"); b.HasIndex("TraitsId") .HasDatabaseName("ix_entity_trait_traits_id"); b.ToTable("entity_trait", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Base.Entity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Description") .IsRequired() .HasColumnType("text") .HasColumnName("description") .HasColumnOrder(6) .HasComment("Текстовое описание сущности"); b.Property("Img") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("img") .HasColumnOrder(5) .HasComment("Изображение объекта"); b.Property("IsChecked") .HasColumnType("boolean") .HasColumnName("is_checked") .HasColumnOrder(9) .HasComment("Проверено?"); b.Property("IsLegacy") .HasColumnType("boolean") .HasColumnName("is_legacy") .HasColumnOrder(10) .HasComment("Устаревшая?"); b.Property("IsTranslated") .HasColumnType("boolean") .HasColumnName("is_translated") .HasColumnOrder(8) .HasComment("Есть перевод?"); b.Property("Name") .IsRequired() .HasColumnType("jsonb") .HasColumnName("name") .HasColumnOrder(2) .HasComment("Отображаемое имя"); b.Property("Rarity") .HasColumnType("entity_rarity") .HasColumnName("rarity") .HasColumnOrder(7) .HasComment("Редкость сущности"); b.Property("Slug") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("slug") .HasColumnOrder(4) .HasComment("Часть имени в URL"); b.Property("Type") .HasColumnType("entity_type") .HasColumnName("type") .HasColumnOrder(3) .HasComment("Тип сущности"); b.HasKey("Id") .HasName("pk_entities"); b.ToTable("entities", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Base.EntityAlias", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("EntityId") .HasColumnType("integer") .HasColumnName("entity_id") .HasColumnOrder(2) .HasComment("Связанная сущность"); b.Property("Name") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("name") .HasColumnOrder(3) .HasComment("Алиас"); b.HasKey("Id") .HasName("pk_entity_aliases"); b.HasIndex("EntityId") .HasDatabaseName("ix_entity_aliases_entity_id"); b.ToTable("entity_aliases", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Base.Keywords.Keyword", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Name") .IsRequired() .HasColumnType("jsonb") .HasColumnName("name") .HasColumnOrder(2) .HasComment("Отображаемое имя"); b.Property("Slug") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("slug") .HasColumnOrder(3) .HasComment("Часть имени в URL"); b.HasKey("Id") .HasName("pk_keywords"); b.ToTable("keywords", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Base.Keywords.KeywordAlias", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("KeywordId") .HasColumnType("integer") .HasColumnName("keyword_id") .HasColumnOrder(2) .HasComment("Идентификатор ключевого слова"); b.Property("Value") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("value") .HasColumnOrder(3) .HasComment("Синоним"); b.HasKey("Id") .HasName("pk_keyword_aliases"); b.HasIndex("KeywordId") .HasDatabaseName("ix_keyword_aliases_keyword_id"); b.ToTable("keyword_aliases", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Base.LegacyRemaster", b => { b.Property("LegacyId") .HasColumnType("integer") .HasColumnName("legacy_id") .HasColumnOrder(1) .HasComment("Идентификатор сущности"); b.Property("RemasterId") .HasColumnType("integer") .HasColumnName("remaster_id") .HasColumnOrder(2) .HasComment("Идентификатор цели"); b.HasKey("LegacyId", "RemasterId") .HasName("pk_legacy_remasters"); b.HasIndex("RemasterId") .HasDatabaseName("ix_legacy_remasters_remaster_id"); b.ToTable("legacy_remasters", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Base.Source.EntitySource", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(0) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("EntityId") .HasColumnType("integer") .HasColumnName("entity_id") .HasColumnOrder(1) .HasComment("Идентификатор сущности"); b.Property("IsRemaster") .HasColumnType("boolean") .HasColumnName("is_remaster") .HasColumnOrder(4) .HasComment("Флаг, указывающий, что объект является частью ремастера"); b.Property("SourceId") .HasColumnType("integer") .HasColumnName("source_id") .HasColumnOrder(2) .HasComment("Идентификатор источника"); b.Property("Suffix") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("suffix") .HasColumnOrder(3) .HasComment("Номер страницы, эррата и т.д."); b.HasKey("Id") .HasName("pk_entity_sources"); b.HasIndex("EntityId") .HasDatabaseName("ix_entity_sources_entity_id"); b.HasIndex("SourceId") .HasDatabaseName("ix_entity_sources_source_id"); b.ToTable("entity_sources", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Base.Source.Source", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Category") .HasColumnType("source_category") .HasColumnName("category") .HasColumnOrder(3) .HasComment("Категория источника"); b.Property("Name") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("name") .HasColumnOrder(2) .HasComment("Отображаемое имя"); b.Property("ReleaseDate") .HasColumnType("date") .HasColumnName("release_date") .HasColumnOrder(4) .HasComment("Дата выхода источника"); b.HasKey("Id") .HasName("pk_sources"); b.ToTable("sources", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Base.Targets.EntityExternal", b => { b.Property("EntityId") .HasColumnType("integer") .HasColumnName("entity_id") .HasColumnOrder(1) .HasComment("Идентификатор сущности"); b.Property("TargetId") .HasColumnType("integer") .HasColumnName("target_id") .HasColumnOrder(2) .HasComment("Идентификатор цели"); b.Property("ExternalId") .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("external_id") .HasColumnOrder(3) .HasComment("Идентификатор элемента в ссылке"); b.Property("Md5") .IsRequired() .HasMaxLength(32) .HasColumnType("character varying(32)") .HasColumnName("md5") .HasColumnOrder(5) .HasComment("Контрольная сумма объекта"); b.Property("Suffix") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("suffix") .HasColumnOrder(4) .HasComment("Часть URL до объекта. Для источников Foundry - полный UUID объекта"); b.HasKey("EntityId", "TargetId") .HasName("pk_entity_externals"); b.HasIndex("TargetId") .HasDatabaseName("ix_entity_externals_target_id"); b.ToTable("entity_externals", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Base.Targets.ExternalTarget", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Icon") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("icon") .HasColumnOrder(3) .HasComment("Иконка цели"); b.Property("Name") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("name") .HasColumnOrder(2) .HasComment("Отображаемое имя"); b.Property("Prefix") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("prefix") .HasColumnOrder(3) .HasComment("Префикс для URL-адреса внешней ссылки"); b.HasKey("Id") .HasName("pk_external_targets"); b.ToTable("external_targets", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Common.Frequency", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Max") .HasColumnType("integer") .HasColumnName("max") .HasColumnOrder(2) .HasComment("Максимальная продолжительсность"); b.Property("Per") .HasColumnType("integer") .HasColumnName("per") .HasColumnOrder(3) .HasComment("Частота использования"); b.Property("Value") .HasColumnType("integer") .HasColumnName("value") .HasColumnOrder(4) .HasComment("Значение использования"); b.HasKey("Id") .HasName("pk_frequencies"); b.ToTable("frequencies", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Common.Training", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Name") .IsRequired() .HasColumnType("jsonb") .HasColumnName("name") .HasColumnOrder(2) .HasComment("Название способности"); b.Property("Type") .HasColumnType("integer") .HasColumnName("type") .HasColumnOrder(3) .HasComment("Тип способности"); b.HasKey("Id") .HasName("pk_trainings"); b.ToTable("trainings", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Action", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("Actions") .HasColumnType("action_enum") .HasColumnName("actions") .HasColumnOrder(2) .HasComment("Количество действий"); b.Property("Category") .HasColumnType("action_category") .HasColumnName("category") .HasColumnOrder(3) .HasComment("Категория действия"); b.Property("Extra") .HasColumnType("text") .HasColumnName("extra") .HasColumnOrder(4) .HasComment("Дополнительная информация"); b.HasKey("Id") .HasName("pk_actions"); b.ToTable("actions", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Ancestry", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("Hp") .HasColumnType("integer") .HasColumnName("hp") .HasColumnOrder(3) .HasComment("Количество очков здоровья"); b.PrimitiveCollection("Size") .IsRequired() .HasColumnType("size_enum[]") .HasColumnName("size") .HasColumnOrder(2) .HasComment("Размеры родословной"); b.Property("Speed") .HasColumnType("integer") .HasColumnName("speed") .HasColumnOrder(4) .HasComment("Скорость передвижения"); b.Property("VisionEnum") .HasColumnType("vision_enum") .HasColumnName("vision_enum") .HasColumnOrder(5) .HasComment("Тип зрения"); b.HasKey("Id") .HasName("pk_ancestries"); b.ToTable("ancestries", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.AncestryRelation.AncestryBoost", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("AncestryId") .HasColumnType("integer") .HasColumnName("ancestry_id") .HasColumnOrder(2) .HasComment("Идентификатор родословной"); b.Property("Boost") .HasColumnType("boolean") .HasColumnName("boost") .HasColumnOrder(3) .HasComment("Флаг повышения/снижения"); b.Property("Value") .HasColumnType("attribute_values") .HasColumnName("value") .HasColumnOrder(4) .HasComment("Значение атрибута"); b.HasKey("Id") .HasName("pk_ancestry_boosts"); b.HasIndex("AncestryId") .HasDatabaseName("ix_ancestry_boosts_ancestry_id"); b.ToTable("ancestry_boosts", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.AncestryRelation.AncestryItem", b => { b.Property("AncestryId") .HasColumnType("integer") .HasColumnName("ancestry_id") .HasColumnOrder(1) .HasComment("Идентификатор родословной"); b.Property("ItemId") .HasColumnType("integer") .HasColumnName("item_id") .HasColumnOrder(2) .HasComment("Идентификатор связанной сущности"); b.Property("Level") .HasColumnType("integer") .HasColumnName("level") .HasColumnOrder(3) .HasComment("Уровень сущности в родословной"); b.HasKey("AncestryId", "ItemId") .HasName("pk_ancestry_items"); b.HasIndex("ItemId") .HasDatabaseName("ix_ancestry_items_item_id"); b.ToTable("ancestry_items", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.AncestryRelation.AncestryLanguage", b => { b.Property("AncestryId") .HasColumnType("integer") .HasColumnName("ancestry_id") .HasColumnOrder(1) .HasComment("Идентификатор родословной"); b.Property("LanguageId") .HasColumnType("integer") .HasColumnName("language_id") .HasColumnOrder(2) .HasComment("Идентификатор связанного языка"); b.Property("IsAdditional") .HasColumnType("boolean") .HasColumnName("is_additional") .HasColumnOrder(3) .HasComment("Флаг дополнительного"); b.HasKey("AncestryId", "LanguageId") .HasName("pk_ancestry_languages"); b.HasIndex("LanguageId") .HasDatabaseName("ix_ancestry_languages_language_id"); b.ToTable("ancestry_languages", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Archetype", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("DedicationFeatId") .HasColumnType("integer") .HasColumnName("dedication_feat_id") .HasColumnOrder(3) .HasComment("ID посвящения"); b.Property("Extra") .HasColumnType("text") .HasColumnName("extra") .HasColumnOrder(4) .HasComment("Дополнительная информация"); b.Property("Level") .HasColumnType("integer") .HasColumnName("level") .HasColumnOrder(2) .HasComment("Уровень"); b.HasKey("Id") .HasName("pk_archetypes"); b.HasIndex("DedicationFeatId") .IsUnique() .HasDatabaseName("ix_archetypes_dedication_feat_id"); b.ToTable("archetypes", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.ArchetypeRelation.ArchetypeFeats", b => { b.Property("ArchetypeId") .HasColumnType("integer") .HasColumnName("archetype_id") .HasComment("Идентификатор архетипа"); b.Property("FeatId") .HasColumnType("integer") .HasColumnName("feat_id") .HasComment("Идентификатор черты"); b.HasKey("ArchetypeId", "FeatId") .HasName("pk_archetype_feats"); b.HasIndex("FeatId") .HasDatabaseName("ix_archetype_feats_feat_id"); b.ToTable("archetype_feats", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Background", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.HasKey("Id") .HasName("pk_backgrounds"); b.ToTable("backgrounds", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.BackgroundRelation.BackgroundBoost", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Attribute") .HasColumnType("attribute_values") .HasColumnName("attribute") .HasColumnOrder(3) .HasComment("Атрибут"); b.Property("BackgroundId") .HasColumnType("integer") .HasColumnName("background_id") .HasColumnOrder(2) .HasComment("Идентификатор предыстории"); b.HasKey("Id") .HasName("pk_background_boosts"); b.HasIndex("BackgroundId") .HasDatabaseName("ix_background_boosts_background_id"); b.ToTable("background_boosts", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.BackgroundRelation.BackgroundItem", b => { b.Property("BackgroundId") .HasColumnType("integer") .HasColumnName("background_id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("EntityId") .HasColumnType("integer") .HasColumnName("entity_id") .HasColumnOrder(2) .HasComment("Идентификатор сущности"); b.Property("Level") .HasColumnType("integer") .HasColumnName("level") .HasColumnOrder(3); b.HasKey("BackgroundId", "EntityId") .HasName("pk_background_items"); b.HasIndex("EntityId") .HasDatabaseName("ix_background_items_entity_id"); b.ToTable("background_items", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.BackgroundRelation.BackgroundTraining", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("BackgroundId") .HasColumnType("integer") .HasColumnName("background_id") .HasColumnOrder(2) .HasComment("Идентификатор предыстории"); b.Property("Rank") .HasColumnType("training_rank") .HasColumnName("rank") .HasColumnOrder(4) .HasComment("Ранг тренировки"); b.Property("TrainingId") .HasColumnType("integer") .HasColumnName("training_id") .HasColumnOrder(3) .HasComment("Идентификатор тренируемого навыка"); b.HasKey("Id") .HasName("pk_background_skills"); b.HasIndex("BackgroundId") .HasDatabaseName("ix_background_skills_background_id"); b.HasIndex("TrainingId") .HasDatabaseName("ix_background_skills_training_id"); b.ToTable("background_skills", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Class", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("AdditionalTrainedSkills") .HasColumnType("integer") .HasColumnName("additional_trained_skills") .HasColumnOrder(7) .HasComment("Дополнительные навыки"); b.Property("Hp") .HasColumnType("integer") .HasColumnName("hp") .HasColumnOrder(2) .HasComment("Количество очков здоровья"); b.Property("Spellcasting") .HasColumnType("integer") .HasColumnName("spellcasting") .HasColumnOrder(3) .HasComment("Тип заклинательства"); b.Property("Tradition") .HasColumnType("spell_tradition") .HasColumnName("tradition") .HasColumnOrder(6) .HasComment("Традиция заклинаний"); b.HasKey("Id") .HasName("pk_classes"); b.ToTable("classes", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.ClassRelation.ClassKeyAttribute", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ClassId") .HasColumnType("integer") .HasColumnName("class_id") .HasColumnOrder(2) .HasComment("Идентификатор класса"); b.Property("Value") .HasColumnType("attribute_values") .HasColumnName("value") .HasColumnOrder(3) .HasComment("Атрибут"); b.HasKey("Id") .HasName("pk_class_key_abilities"); b.HasIndex("ClassId") .HasDatabaseName("ix_class_key_abilities_class_id"); b.ToTable("class_key_abilities", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.ClassRelation.ClassProgression", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ClassId") .HasColumnType("integer") .HasColumnName("class_id") .HasColumnOrder(2) .HasComment("Идентификатор класса"); b.Property("EntityId") .HasColumnType("integer") .HasColumnName("entity_id") .HasColumnOrder(5) .HasComment("Идентификатор сущности"); b.Property("Level") .HasColumnType("integer") .HasColumnName("level") .HasColumnOrder(3) .HasComment("Уровень класса"); b.Property("Type") .HasColumnType("class_progression_type") .HasColumnName("type") .HasColumnOrder(4) .HasComment("Тип элемента прогрессии класса"); b.HasKey("Id") .HasName("pk_class_progressions"); b.HasIndex("ClassId") .HasDatabaseName("ix_class_progressions_class_id"); b.HasIndex("EntityId") .HasDatabaseName("ix_class_progressions_entity_id"); b.ToTable("class_progressions", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.ClassRelation.ClassTraining", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ClassId") .HasColumnType("integer") .HasColumnName("class_id") .HasColumnOrder(2) .HasComment("Идентификатор класса"); b.Property("Rank") .HasColumnType("training_rank") .HasColumnName("rank") .HasColumnOrder(4) .HasComment("Ранг тренировки"); b.Property("TrainingId") .HasColumnType("integer") .HasColumnName("training_id") .HasColumnOrder(3) .HasComment("Идентификатор тренируемого навыка"); b.HasKey("Id") .HasName("pk_class_trainings"); b.HasIndex("ClassId") .HasDatabaseName("ix_class_trainings_class_id"); b.HasIndex("TrainingId") .HasDatabaseName("ix_class_trainings_training_id"); b.ToTable("class_trainings", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.ClassRelation.SubclassProvidedEntities", b => { b.Property("SubclassId") .HasColumnType("integer") .HasColumnName("subclass_id"); b.Property("EntityId") .HasColumnType("integer") .HasColumnName("entity_id"); b.HasKey("SubclassId", "EntityId") .HasName("pk_subclass_provided_entities"); b.HasIndex("EntityId") .HasDatabaseName("ix_subclass_provided_entities_entity_id"); b.ToTable("subclass_provided_entities", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.ClassRelation.SubclassTrainings", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор связи"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Rank") .HasColumnType("training_rank") .HasColumnName("rank") .HasColumnOrder(4) .HasComment("Ранг тренировки"); b.Property("SubclassId") .HasColumnType("integer") .HasColumnName("subclass_id") .HasColumnOrder(2) .HasComment("Идентификатор подкласса"); b.Property("TrainingId") .HasColumnType("integer") .HasColumnName("training_id") .HasColumnOrder(3) .HasComment("Идентификатор тренировки"); b.HasKey("Id") .HasName("pk_subclass_trainings"); b.HasIndex("SubclassId") .HasDatabaseName("ix_subclass_trainings_subclass_id"); b.HasIndex("TrainingId") .HasDatabaseName("ix_subclass_trainings_training_id"); b.ToTable("subclass_trainings", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Condition", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("Extra") .HasColumnType("text") .HasColumnName("extra") .HasColumnOrder(3) .HasComment("Дополнительная информация"); b.Property("Group") .HasColumnType("condition_group") .HasColumnName("group") .HasColumnOrder(2) .HasComment("Группа состояния"); b.HasKey("Id") .HasName("pk_conditions"); b.ToTable("conditions", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Deity", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("Anathema") .IsRequired() .HasColumnType("jsonb") .HasColumnName("anathema") .HasColumnOrder(8) .HasComment("Анафемы божества"); b.Property("AreaOfConcern") .IsRequired() .HasColumnType("jsonb") .HasColumnName("area_of_concern") .HasColumnOrder(11) .HasComment("Область покровительства божества"); b.Property("Category") .IsRequired() .HasColumnType("text") .HasColumnName("category") .HasColumnOrder(3) .HasComment("Категория божества"); b.Property("CategoryEntityId") .HasColumnType("integer") .HasColumnName("category_entity_id"); b.Property("CategoryId") .HasColumnType("integer") .HasColumnName("category_id") .HasColumnOrder(12) .HasComment("Идентификатор категории божества"); b.Property("Edicts") .IsRequired() .HasColumnType("jsonb") .HasColumnName("edicts") .HasColumnOrder(7) .HasComment("Заветы божества"); b.Property("Fonts") .HasColumnType("deity_fonts") .HasColumnName("fonts") .HasColumnOrder(4) .HasComment("Тип божественной силы"); b.Property("ReligiousSymbol") .IsRequired() .HasColumnType("jsonb") .HasColumnName("religious_symbol") .HasColumnOrder(9) .HasComment("Религиозный символ божества"); b.Property("SacredAnimal") .IsRequired() .HasColumnType("jsonb") .HasColumnName("sacred_animal") .HasColumnOrder(10) .HasComment("Священное животное божества"); b.Property("Sanctification") .HasColumnType("deity_sanctification") .HasColumnName("sanctification") .HasColumnOrder(5) .HasComment("Тип освящения"); b.Property("SanctificationMust") .HasColumnType("boolean") .HasColumnName("sanctification_must") .HasColumnOrder(6) .HasComment("Обязательное освящение"); b.Property("Type") .HasColumnType("deity_type") .HasColumnName("type") .HasColumnOrder(2) .HasComment("Тип божества"); b.HasKey("Id") .HasName("pk_deities"); b.HasIndex("CategoryEntityId") .HasDatabaseName("ix_deities_category_entity_id"); b.ToTable("deities", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.DeityCategory", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("Description") .IsRequired() .HasColumnType("jsonb") .HasColumnName("description") .HasColumnOrder(2) .HasComment("Описание категории"); b.HasKey("Id") .HasName("pk_deity_categories"); b.ToTable("deity_categories", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.DeityRelation.DeityAttribute", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Attribute") .HasColumnType("attribute_values") .HasColumnName("attribute") .HasColumnOrder(3) .HasComment("Атрибут божества"); b.Property("DeityId") .HasColumnType("integer") .HasColumnName("deity_id") .HasColumnOrder(2) .HasComment("Идентификатор божества"); b.HasKey("Id") .HasName("pk_deity_attributes"); b.HasIndex("DeityId") .HasDatabaseName("ix_deity_attributes_deity_id"); b.ToTable("deity_attributes", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.DeityRelation.DeityDomain", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("DeityId") .HasColumnType("integer") .HasColumnName("deity_id") .HasColumnOrder(2) .HasComment("Идентификатор божества"); b.Property("DomainId") .HasColumnType("integer") .HasColumnName("domain_id") .HasColumnOrder(4) .HasComment("Идентификатор домена"); b.Property("IsPrimary") .HasColumnType("boolean") .HasColumnName("is_primary") .HasColumnOrder(3) .HasComment("Флаг основного домена"); b.Property("Value") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("value") .HasColumnOrder(5); b.HasKey("Id") .HasName("pk_deity_domains"); b.HasIndex("DeityId") .HasDatabaseName("ix_deity_domains_deity_id"); b.HasIndex("DomainId") .HasDatabaseName("ix_deity_domains_domain_id"); b.ToTable("deity_domains", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.DeityRelation.DeitySpell", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("DeityId") .HasColumnType("integer") .HasColumnName("deity_id") .HasColumnOrder(2) .HasComment("Идентификатор божества"); b.Property("Level") .HasColumnType("integer") .HasColumnName("level") .HasColumnOrder(3) .HasComment("Уровень заклинания"); b.Property("SpellId") .HasColumnType("integer") .HasColumnName("spell_id") .HasColumnOrder(4) .HasComment("Идентификатор заклинания"); b.HasKey("Id") .HasName("pk_deity_spells"); b.HasIndex("DeityId") .HasDatabaseName("ix_deity_spells_deity_id"); b.HasIndex("SpellId") .HasDatabaseName("ix_deity_spells_spell_id"); b.ToTable("deity_spells", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.DeityRelation.DeityWeapon", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("DeityId") .HasColumnType("integer") .HasColumnName("deity_id") .HasColumnOrder(2) .HasComment("Идентификатор божества"); b.Property("Weapon") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("weapon") .HasColumnOrder(3) .HasComment("Название оружия"); b.HasKey("Id") .HasName("pk_deity_weapons"); b.HasIndex("DeityId") .HasDatabaseName("ix_deity_weapons_deity_id"); b.ToTable("deity_weapons", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Domain", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("AdvancedApocryphalSpellId") .HasColumnType("integer") .HasColumnName("advanced_apocryphal_spell_id") .HasColumnOrder(5) .HasComment("Продвинутое апокрифическое заклинание домена"); b.Property("AdvancedDomainSpellId") .HasColumnType("integer") .HasColumnName("advanced_domain_spell_id") .HasColumnOrder(3) .HasComment("Продвинутое заклинание домена"); b.Property("ApocryphalSpellId") .HasColumnType("integer") .HasColumnName("apocryphal_spell_id") .HasColumnOrder(4) .HasComment("Апокрифическое заклинание домена"); b.Property("DomainSpellId") .HasColumnType("integer") .HasColumnName("domain_spell_id") .HasColumnOrder(2) .HasComment("Заклинание домена"); b.HasKey("Id") .HasName("pk_domains"); b.HasIndex("AdvancedApocryphalSpellId") .HasDatabaseName("ix_domains_advanced_apocryphal_spell_id"); b.HasIndex("AdvancedDomainSpellId") .HasDatabaseName("ix_domains_advanced_domain_spell_id"); b.HasIndex("ApocryphalSpellId") .HasDatabaseName("ix_domains_apocryphal_spell_id"); b.HasIndex("DomainSpellId") .HasDatabaseName("ix_domains_domain_spell_id"); b.ToTable("domains", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Feat", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("Actions") .HasColumnType("action_enum") .HasColumnName("actions") .HasColumnOrder(5) .HasComment("Количество действий"); b.Property("Category") .HasColumnType("feat_category") .HasColumnName("category") .HasColumnOrder(3) .HasComment("Категория способности"); b.Property("Extra") .HasColumnType("text") .HasColumnName("extra") .HasColumnOrder(6) .HasComment("Дополнительная информация"); b.Property("Level") .HasColumnType("integer") .HasColumnName("level") .HasColumnOrder(4) .HasComment("Уровень способности"); b.HasKey("Id") .HasName("pk_feats"); b.ToTable("feats", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.FeatRelation.FeatPrerequisite", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("FeatId") .HasColumnType("integer") .HasColumnName("feat_id") .HasColumnOrder(2) .HasComment("Идентификатор черты"); b.Property("Value") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("value") .HasColumnOrder(3) .HasComment("Предварительное требование"); b.HasKey("Id") .HasName("pk_feat_prerequisites"); b.HasIndex("FeatId") .HasDatabaseName("ix_feat_prerequisites_feat_id"); b.ToTable("feat_prerequisites", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Heritage", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("AncestryId") .HasColumnType("integer") .HasColumnName("ancestry_id") .HasColumnOrder(2) .HasComment("Идентификатор родословной"); b.HasKey("Id") .HasName("pk_heritages"); b.HasIndex("AncestryId") .HasDatabaseName("ix_heritages_ancestry_id"); b.ToTable("heritages", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Language", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("EntityId") .HasColumnType("integer") .HasColumnName("entity_id"); b.HasKey("Id") .HasName("pk_languages"); b.HasIndex("EntityId") .HasDatabaseName("ix_languages_entity_id"); b.ToTable("languages", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Ritual", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("CastTime") .HasColumnType("integer") .HasColumnName("cast_time") .HasColumnOrder(3) .HasComment("Продолжительность ритуала в секундах"); b.Property("Cost") .HasColumnType("jsonb") .HasColumnName("cost") .HasColumnOrder(14) .HasComment("Стоимость ритуала"); b.Property("Duration") .HasColumnType("integer") .HasColumnName("duration") .HasColumnOrder(4) .HasComment("Время действия эффекта ритуала в секундах"); b.PrimitiveCollection("Elements") .IsRequired() .HasColumnType("element_enum[]") .HasColumnName("elements") .HasColumnOrder(5) .HasComment("Элементы ритуала"); b.Property("Level") .HasColumnType("integer") .HasColumnName("level") .HasColumnOrder(2) .HasComment("Уровень ритуала"); b.Property("PrimaryCheckRank") .HasColumnType("training_rank") .HasColumnName("primary_check_rank") .HasColumnOrder(7) .HasComment("Ранг основной проверки"); b.Property("PrimaryCheckSuffix") .HasColumnType("jsonb") .HasColumnName("primary_check_suffix") .HasColumnOrder(8) .HasComment("Дополнительная информация об основной проверки"); b.Property("Range") .HasColumnType("integer") .HasColumnName("range") .HasColumnOrder(6) .HasComment("Дальнность ритуала"); b.Property("RangeString") .HasColumnType("jsonb") .HasColumnName("range_string") .HasColumnOrder(12) .HasComment("Дальность ритуала"); b.Property("Requirement") .HasColumnType("jsonb") .HasColumnName("requirement") .HasColumnOrder(15) .HasComment("Требования к ритуалу"); b.Property("SecondaryCasters") .HasColumnType("integer") .HasColumnName("secondary_casters") .HasColumnOrder(9) .HasComment("Количество дополнительных заклинателей"); b.Property("SecondaryCastersMax") .HasColumnType("integer") .HasColumnName("secondary_casters_max") .HasColumnOrder(10) .HasComment("Максимальное количество дополнительных заклинателей"); b.Property("SecondaryCastersSuffix") .HasColumnType("jsonb") .HasColumnName("secondary_casters_suffix") .HasColumnOrder(11) .HasComment("Дополнительная информация о дополнительных заклинателях"); b.Property("Target") .HasColumnType("jsonb") .HasColumnName("target") .HasColumnOrder(13) .HasComment("Цель ритуала"); b.HasKey("Id") .HasName("pk_rituals"); b.ToTable("rituals", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.RitualRelation.RitualArea", b => { b.Property("RitualId") .HasColumnType("integer") .HasColumnName("ritual_id") .HasColumnOrder(1) .HasComment("Идентификатор ритуала"); b.Property("Details") .HasMaxLength(255) .HasColumnType("jsonb") .HasColumnName("details") .HasColumnOrder(2) .HasComment("Описание области действия ритуала"); b.Property("Type") .HasColumnType("spell_area_type") .HasColumnName("type") .HasColumnOrder(3) .HasComment("Тип области действия ритуала"); b.HasKey("RitualId") .HasName("pk_ritual_areas"); b.ToTable("ritual_areas", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.RitualRelation.RitualCheck", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("IsPrimary") .HasColumnType("boolean") .HasColumnName("is_primary") .HasColumnOrder(6) .HasComment("Флаг основной проверки"); b.Property("Rank") .HasColumnType("training_rank") .HasColumnName("rank") .HasColumnOrder(5) .HasComment("Ранг тренировки"); b.Property("RitualId") .HasColumnType("integer") .HasColumnName("ritual_id") .HasColumnOrder(2) .HasComment("Идентификатор ритуала"); b.Property("TrainingId") .HasColumnType("integer") .HasColumnName("training_id") .HasColumnOrder(3) .HasComment("Идентификатор тренировки"); b.Property("TrainingString") .HasColumnType("jsonb") .HasColumnName("training_string") .HasColumnOrder(4) .HasComment("Дополнение к проверке"); b.HasKey("Id") .HasName("pk_ritual_checks"); b.HasIndex("RitualId") .HasDatabaseName("ix_ritual_checks_ritual_id"); b.HasIndex("TrainingId") .HasDatabaseName("ix_ritual_checks_training_id"); b.ToTable("ritual_checks", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Rule", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.PrimitiveCollection("Breadcrumbs") .IsRequired() .HasColumnType("text[]") .HasColumnName("breadcrumbs"); b.Property("Order") .HasColumnType("integer") .HasColumnName("order") .HasColumnOrder(2) .HasComment("Порядок отображения"); b.Property("ParentId") .HasColumnType("integer") .HasColumnName("parent_id") .HasColumnOrder(3) .HasComment("Родительского правило"); b.HasKey("Id") .HasName("pk_rules"); b.HasIndex("ParentId") .HasDatabaseName("ix_rules_parent_id"); b.ToTable("rules", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Spell", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("Actions") .HasColumnType("action_enum") .HasColumnName("actions") .HasColumnOrder(4) .HasComment("Количество действий"); b.Property("Cost") .HasColumnType("jsonb") .HasColumnName("cost") .HasColumnOrder(11) .HasComment("Стоимость заклинания"); b.Property("Duration") .HasMaxLength(255) .HasColumnType("integer") .HasColumnName("duration") .HasColumnOrder(5) .HasComment("Время длительности заклинания"); b.PrimitiveCollection("Elements") .IsRequired() .HasColumnType("element_enum[]") .HasColumnName("elements") .HasColumnOrder(8) .HasComment("Элементы заклинания"); b.Property("IsFocus") .HasColumnType("boolean") .HasColumnName("is_focus") .HasColumnOrder(3) .HasComment("Фокус?"); b.Property("Level") .HasColumnType("integer") .HasColumnName("level") .HasColumnOrder(2); b.Property("Range") .HasColumnType("integer") .HasColumnName("range") .HasColumnOrder(6) .HasComment("Дальность заклинания"); b.Property("Requirement") .HasColumnType("jsonb") .HasColumnName("requirement") .HasColumnOrder(12) .HasComment("Требования к заклинанию"); b.Property("Target") .HasColumnType("jsonb") .HasColumnName("target") .HasColumnOrder(10) .HasComment("Цель заклинания"); b.PrimitiveCollection("Traditions") .IsRequired() .HasColumnType("spell_tradition[]") .HasColumnName("traditions") .HasColumnOrder(7) .HasComment("Традиции заклинания"); b.Property("Trigger") .HasColumnType("jsonb") .HasColumnName("trigger") .HasColumnOrder(9) .HasComment("Триггер заклинания"); b.HasKey("Id") .HasName("pk_spells"); b.ToTable("spells", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.SpellRelation.SpellArea", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Details") .HasMaxLength(255) .HasColumnType("jsonb") .HasColumnName("details") .HasColumnOrder(3) .HasComment("Описание области заклинания"); b.Property("SpellId") .HasColumnType("integer") .HasColumnName("spell_id") .HasColumnOrder(2) .HasComment("Идентификатор заклинания"); b.Property("Type") .HasColumnType("spell_area_type") .HasColumnName("type") .HasColumnOrder(4) .HasComment("Тип области заклинания"); b.HasKey("Id") .HasName("pk_spell_areas"); b.HasIndex("SpellId") .HasDatabaseName("ix_spell_areas_spell_id"); b.ToTable("spell_areas", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.SpellRelation.SpellDamage", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор урона заклинания"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ApplyMod") .HasColumnType("boolean") .HasColumnName("apply_mod") .HasColumnOrder(4) .HasComment("Применяется модификатор?"); b.Property("Category") .HasColumnType("spell_damage_category") .HasColumnName("category") .HasColumnOrder(5) .HasComment("Категория урона заклинания"); b.Property("Formula") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("formula") .HasColumnOrder(6) .HasComment("Формула урона заклинания"); b.Property("Key") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("key") .HasColumnOrder(3) .HasComment("Уровень заклинания"); b.Property("Kinds") .HasColumnType("spell_damage_kinds") .HasColumnName("kinds") .HasColumnOrder(7) .HasComment("Тип урона заклинания"); b.Property("Materials") .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("materials") .HasColumnOrder(8) .HasComment("Материалы для заклинания"); b.Property("SpellId") .HasColumnType("integer") .HasColumnName("spell_id") .HasColumnOrder(2) .HasComment("Идентификатор заклинания"); b.Property("Type") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("type") .HasColumnOrder(9) .HasComment("Тип урона заклинания"); b.HasKey("Id") .HasName("pk_spell_damages"); b.HasIndex("SpellId") .HasDatabaseName("ix_spell_damages_spell_id"); b.ToTable("spell_damages", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.SpellRelation.SpellDefense", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("IsBasic") .HasColumnType("boolean") .HasColumnName("is_basic") .HasColumnOrder(4) .HasComment("Базовый спасборосок?"); b.Property("IsPassive") .HasColumnType("boolean") .HasColumnName("is_passive") .HasColumnOrder(3); b.Property("SpellId") .HasColumnType("integer") .HasColumnName("spell_id") .HasColumnOrder(2) .HasComment("Идентификатор заклинания"); b.Property("Statistic") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("statistic") .HasColumnOrder(5); b.HasKey("Id") .HasName("pk_spell_defenses"); b.HasIndex("SpellId") .HasDatabaseName("ix_spell_defenses_spell_id"); b.ToTable("spell_defenses", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Subclass", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("Additional") .IsRequired() .HasColumnType("jsonb") .HasColumnName("additional") .HasColumnOrder(3) .HasComment("Дополнительная информация"); b.Property("Extra") .IsRequired() .HasColumnType("text") .HasColumnName("extra") .HasColumnOrder(4); b.Property("GroupId") .HasColumnType("integer") .HasColumnName("group_id") .HasColumnOrder(2) .HasComment("Группа подклассов"); b.HasKey("Id") .HasName("pk_subclasses"); b.HasIndex("GroupId") .HasDatabaseName("ix_subclasses_group_id"); b.ToTable("subclasses", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.SubclassGroup", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("ClassId") .HasColumnType("integer") .HasColumnName("class_id") .HasColumnOrder(2) .HasComment("Идентификатор класса"); b.HasKey("Id") .HasName("pk_subclass_groups"); b.HasIndex("ClassId") .HasDatabaseName("ix_subclass_groups_class_id"); b.ToTable("subclass_groups", (string)null); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Trait", b => { b.Property("Id") .HasColumnType("integer") .HasColumnName("id") .HasColumnOrder(1) .HasComment("Идентификатор"); b.Property("Type") .HasColumnType("trait_type") .HasColumnName("type") .HasColumnOrder(2) .HasComment("Тип признака"); b.HasKey("Id") .HasName("pk_traits"); b.ToTable("traits", (string)null); }); modelBuilder.Entity("DeityTraining", b => { b.HasOne("Pf2eModel.Model.Structure.Deity", null) .WithMany() .HasForeignKey("DeityId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_deity_training_deities_deity_id"); b.HasOne("Pf2eModel.Model.Common.Training", null) .WithMany() .HasForeignKey("SkillsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_deity_training_trainings_skills_id"); }); modelBuilder.Entity("EntityKeyword", b => { b.HasOne("Pf2eModel.Model.Base.Entity", null) .WithMany() .HasForeignKey("EntitiesId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_entity_keyword_entities_entities_id"); b.HasOne("Pf2eModel.Model.Base.Keywords.Keyword", null) .WithMany() .HasForeignKey("KeywordsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_entity_keyword_keywords_keywords_id"); }); modelBuilder.Entity("EntityTrait", b => { b.HasOne("Pf2eModel.Model.Base.Entity", null) .WithMany() .HasForeignKey("EntitiesId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_entity_trait_entities_entities_id"); b.HasOne("Pf2eModel.Model.Structure.Trait", null) .WithMany() .HasForeignKey("TraitsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_entity_trait_traits_traits_id"); }); modelBuilder.Entity("Pf2eModel.Model.Base.EntityAlias", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithMany("Aliases") .HasForeignKey("EntityId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_entity_aliases_entities_entity_id"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Base.Keywords.KeywordAlias", b => { b.HasOne("Pf2eModel.Model.Base.Keywords.Keyword", "Keyword") .WithMany("Aliases") .HasForeignKey("KeywordId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_keyword_aliases_keywords_keyword_id"); b.Navigation("Keyword"); }); modelBuilder.Entity("Pf2eModel.Model.Base.LegacyRemaster", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "LegacyEntity") .WithMany("LegacyTransferEntities") .HasForeignKey("LegacyId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_legacy_remasters_entities_legacy_id"); b.HasOne("Pf2eModel.Model.Base.Entity", "RemasterEntity") .WithMany("RemasterTransferEntities") .HasForeignKey("RemasterId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_legacy_remasters_entities_remaster_id"); b.Navigation("LegacyEntity"); b.Navigation("RemasterEntity"); }); modelBuilder.Entity("Pf2eModel.Model.Base.Source.EntitySource", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithMany("Sources") .HasForeignKey("EntityId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_entity_sources_entities_entity_id"); b.HasOne("Pf2eModel.Model.Base.Source.Source", "Source") .WithMany("EntitySources") .HasForeignKey("SourceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_entity_sources_sources_source_id"); b.Navigation("Entity"); b.Navigation("Source"); }); modelBuilder.Entity("Pf2eModel.Model.Base.Targets.EntityExternal", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithMany("Externals") .HasForeignKey("EntityId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_entity_externals_entities_entity_id"); b.HasOne("Pf2eModel.Model.Base.Targets.ExternalTarget", "Target") .WithMany("EntityExternals") .HasForeignKey("TargetId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_entity_externals_external_targets_target_id"); b.Navigation("Entity"); b.Navigation("Target"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Action", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Action", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_actions_entities_id"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Ancestry", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Ancestry", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_ancestries_entities_id"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.AncestryRelation.AncestryBoost", b => { b.HasOne("Pf2eModel.Model.Structure.Ancestry", "Ancestry") .WithMany("AncestryBoosts") .HasForeignKey("AncestryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_ancestry_boosts_ancestries_ancestry_id"); b.Navigation("Ancestry"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.AncestryRelation.AncestryItem", b => { b.HasOne("Pf2eModel.Model.Structure.Ancestry", "Ancestry") .WithMany("AncestryItems") .HasForeignKey("AncestryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_ancestry_items_ancestries_ancestry_id"); b.HasOne("Pf2eModel.Model.Base.Entity", "Item") .WithMany() .HasForeignKey("ItemId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_ancestry_items_entities_item_id"); b.Navigation("Ancestry"); b.Navigation("Item"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.AncestryRelation.AncestryLanguage", b => { b.HasOne("Pf2eModel.Model.Structure.Ancestry", "Ancestry") .WithMany("AncestryLanguages") .HasForeignKey("AncestryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_ancestry_languages_ancestries_ancestry_id"); b.HasOne("Pf2eModel.Model.Structure.Language", "Language") .WithMany() .HasForeignKey("LanguageId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_ancestry_languages_languages_language_id"); b.Navigation("Ancestry"); b.Navigation("Language"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Archetype", b => { b.HasOne("Pf2eModel.Model.Structure.Feat", "DedicationFeat") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Archetype", "DedicationFeatId") .OnDelete(DeleteBehavior.Cascade) .HasConstraintName("fk_archetypes_feats_dedication_feat_id"); b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Archetype", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_archetypes_entities_id"); b.Navigation("DedicationFeat"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.ArchetypeRelation.ArchetypeFeats", b => { b.HasOne("Pf2eModel.Model.Structure.Archetype", null) .WithMany() .HasForeignKey("ArchetypeId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_archetype_feats_archetypes_archetype_id"); b.HasOne("Pf2eModel.Model.Structure.Feat", null) .WithMany() .HasForeignKey("FeatId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_archetype_feats_feats_feat_id"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Background", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Background", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_backgrounds_entities_id"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.BackgroundRelation.BackgroundBoost", b => { b.HasOne("Pf2eModel.Model.Structure.Background", "Background") .WithMany("BackgroundBoosts") .HasForeignKey("BackgroundId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_background_boosts_backgrounds_background_id"); b.Navigation("Background"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.BackgroundRelation.BackgroundItem", b => { b.HasOne("Pf2eModel.Model.Structure.Background", "Background") .WithMany("BackgroundItems") .HasForeignKey("BackgroundId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_background_items_backgrounds_background_id"); b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithMany() .HasForeignKey("EntityId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_background_items_entities_entity_id"); b.Navigation("Background"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.BackgroundRelation.BackgroundTraining", b => { b.HasOne("Pf2eModel.Model.Structure.Background", "Background") .WithMany("BackgroundSkills") .HasForeignKey("BackgroundId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_background_skills_backgrounds_background_id"); b.HasOne("Pf2eModel.Model.Common.Training", "Training") .WithMany() .HasForeignKey("TrainingId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_background_skills_trainings_training_id"); b.Navigation("Background"); b.Navigation("Training"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Class", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Class", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_classes_entities_id"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.ClassRelation.ClassKeyAttribute", b => { b.HasOne("Pf2eModel.Model.Structure.Class", "Class") .WithMany("ClassKeyAbilities") .HasForeignKey("ClassId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_class_key_abilities_classes_class_id"); b.Navigation("Class"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.ClassRelation.ClassProgression", b => { b.HasOne("Pf2eModel.Model.Structure.Class", "Class") .WithMany("ClassProgressions") .HasForeignKey("ClassId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_class_progressions_classes_class_id"); b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithMany() .HasForeignKey("EntityId") .OnDelete(DeleteBehavior.SetNull) .HasConstraintName("fk_class_progressions_entities_entity_id"); b.Navigation("Class"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.ClassRelation.ClassTraining", b => { b.HasOne("Pf2eModel.Model.Structure.Class", "Class") .WithMany("ClassTrainings") .HasForeignKey("ClassId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_class_trainings_classes_class_id"); b.HasOne("Pf2eModel.Model.Common.Training", "Training") .WithMany() .HasForeignKey("TrainingId") .OnDelete(DeleteBehavior.SetNull) .HasConstraintName("fk_class_trainings_trainings_training_id"); b.Navigation("Class"); b.Navigation("Training"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.ClassRelation.SubclassProvidedEntities", b => { b.HasOne("Pf2eModel.Model.Base.Entity", null) .WithMany() .HasForeignKey("EntityId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_subclass_provided_entities_entities_entity_id"); b.HasOne("Pf2eModel.Model.Structure.Subclass", null) .WithMany() .HasForeignKey("SubclassId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_subclass_provided_entities_subclasses_subclass_id"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.ClassRelation.SubclassTrainings", b => { b.HasOne("Pf2eModel.Model.Structure.Subclass", "Subclass") .WithMany("Trainings") .HasForeignKey("SubclassId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_subclass_trainings_subclasses_subclass_id"); b.HasOne("Pf2eModel.Model.Common.Training", "Training") .WithMany() .HasForeignKey("TrainingId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_subclass_trainings_trainings_training_id"); b.Navigation("Subclass"); b.Navigation("Training"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Condition", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Condition", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_conditions_entities_id"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Deity", b => { b.HasOne("Pf2eModel.Model.Structure.DeityCategory", "CategoryEntity") .WithMany() .HasForeignKey("CategoryEntityId") .HasConstraintName("fk_deities_deity_categories_category_entity_id"); b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Deity", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_deities_entities_id"); b.Navigation("CategoryEntity"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.DeityCategory", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.DeityCategory", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_deity_categories_entities_id"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.DeityRelation.DeityAttribute", b => { b.HasOne("Pf2eModel.Model.Structure.Deity", "Deity") .WithMany("DeityAttributes") .HasForeignKey("DeityId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_deity_attributes_deities_deity_id"); b.Navigation("Deity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.DeityRelation.DeityDomain", b => { b.HasOne("Pf2eModel.Model.Structure.Deity", "Deity") .WithMany("DeityDomains") .HasForeignKey("DeityId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_deity_domains_deities_deity_id"); b.HasOne("Pf2eModel.Model.Structure.Domain", "Domain") .WithMany("DeityDomains") .HasForeignKey("DomainId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_deity_domains_domains_domain_id"); b.Navigation("Deity"); b.Navigation("Domain"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.DeityRelation.DeitySpell", b => { b.HasOne("Pf2eModel.Model.Structure.Deity", "Deity") .WithMany("DeitySpells") .HasForeignKey("DeityId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_deity_spells_deities_deity_id"); b.HasOne("Pf2eModel.Model.Structure.Spell", "Spell") .WithMany() .HasForeignKey("SpellId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_deity_spells_spells_spell_id"); b.Navigation("Deity"); b.Navigation("Spell"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.DeityRelation.DeityWeapon", b => { b.HasOne("Pf2eModel.Model.Structure.Deity", "Deity") .WithMany("DeityWeapons") .HasForeignKey("DeityId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_deity_weapons_deities_deity_id"); b.Navigation("Deity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Domain", b => { b.HasOne("Pf2eModel.Model.Structure.Spell", "AdvancedApocryphalSpell") .WithMany() .HasForeignKey("AdvancedApocryphalSpellId") .OnDelete(DeleteBehavior.SetNull) .HasConstraintName("fk_domains_spells_advanced_apocryphal_spell_id"); b.HasOne("Pf2eModel.Model.Structure.Spell", "AdvancedDomainSpell") .WithMany() .HasForeignKey("AdvancedDomainSpellId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_domains_spells_advanced_domain_spell_id"); b.HasOne("Pf2eModel.Model.Structure.Spell", "ApocryphalSpell") .WithMany() .HasForeignKey("ApocryphalSpellId") .OnDelete(DeleteBehavior.SetNull) .HasConstraintName("fk_domains_spells_apocryphal_spell_id"); b.HasOne("Pf2eModel.Model.Structure.Spell", "DomainSpell") .WithMany() .HasForeignKey("DomainSpellId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_domains_spells_domain_spell_id"); b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Domain", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_domains_entities_id"); b.Navigation("AdvancedApocryphalSpell"); b.Navigation("AdvancedDomainSpell"); b.Navigation("ApocryphalSpell"); b.Navigation("DomainSpell"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Feat", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Feat", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_feats_entities_id"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.FeatRelation.FeatPrerequisite", b => { b.HasOne("Pf2eModel.Model.Structure.Feat", "Feat") .WithMany("FeatPrerequisites") .HasForeignKey("FeatId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_feat_prerequisites_feats_feat_id"); b.Navigation("Feat"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Heritage", b => { b.HasOne("Pf2eModel.Model.Structure.Ancestry", "Ancestry") .WithMany("Heritages") .HasForeignKey("AncestryId") .OnDelete(DeleteBehavior.Cascade) .HasConstraintName("fk_heritages_ancestries_ancestry_id"); b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Heritage", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_heritages_entities_id"); b.Navigation("Ancestry"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Language", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithMany() .HasForeignKey("EntityId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_languages_entities_entity_id"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Ritual", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Ritual", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_rituals_entities_id"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.RitualRelation.RitualArea", b => { b.HasOne("Pf2eModel.Model.Structure.Ritual", "Ritual") .WithOne("Area") .HasForeignKey("Pf2eModel.Model.Structure.RitualRelation.RitualArea", "RitualId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_ritual_areas_rituals_ritual_id"); b.Navigation("Ritual"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.RitualRelation.RitualCheck", b => { b.HasOne("Pf2eModel.Model.Structure.Ritual", "Ritual") .WithMany("Checks") .HasForeignKey("RitualId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_ritual_checks_rituals_ritual_id"); b.HasOne("Pf2eModel.Model.Common.Training", "Training") .WithMany() .HasForeignKey("TrainingId") .OnDelete(DeleteBehavior.SetNull) .HasConstraintName("fk_ritual_checks_trainings_training_id"); b.Navigation("Ritual"); b.Navigation("Training"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Rule", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Rule", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_rules_entities_id"); b.HasOne("Pf2eModel.Model.Structure.Rule", "Parent") .WithMany("Children") .HasForeignKey("ParentId") .HasConstraintName("fk_rules_rules_parent_id"); b.Navigation("Entity"); b.Navigation("Parent"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Spell", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Spell", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_spells_entities_id"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.SpellRelation.SpellArea", b => { b.HasOne("Pf2eModel.Model.Structure.Spell", "Spell") .WithMany("SpellAreas") .HasForeignKey("SpellId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_spell_areas_spells_spell_id"); b.Navigation("Spell"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.SpellRelation.SpellDamage", b => { b.HasOne("Pf2eModel.Model.Structure.Spell", "Spell") .WithMany() .HasForeignKey("SpellId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_spell_damages_spells_spell_id"); b.Navigation("Spell"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.SpellRelation.SpellDefense", b => { b.HasOne("Pf2eModel.Model.Structure.Spell", "Spell") .WithMany("SpellDefenses") .HasForeignKey("SpellId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_spell_defenses_spells_spell_id"); b.Navigation("Spell"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Subclass", b => { b.HasOne("Pf2eModel.Model.Structure.SubclassGroup", "Group") .WithMany("Subclasses") .HasForeignKey("GroupId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_subclasses_subclass_groups_group_id"); b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Subclass", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_subclasses_entities_id"); b.Navigation("Entity"); b.Navigation("Group"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.SubclassGroup", b => { b.HasOne("Pf2eModel.Model.Structure.Class", "Class") .WithMany("SubclassGroups") .HasForeignKey("ClassId") .OnDelete(DeleteBehavior.Cascade) .HasConstraintName("fk_subclass_groups_classes_class_id"); b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.SubclassGroup", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_subclass_groups_entities_id"); b.Navigation("Class"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Trait", b => { b.HasOne("Pf2eModel.Model.Base.Entity", "Entity") .WithOne() .HasForeignKey("Pf2eModel.Model.Structure.Trait", "Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_traits_entities_id"); b.Navigation("Entity"); }); modelBuilder.Entity("Pf2eModel.Model.Base.Entity", b => { b.Navigation("Aliases"); b.Navigation("Externals"); b.Navigation("LegacyTransferEntities"); b.Navigation("RemasterTransferEntities"); b.Navigation("Sources"); }); modelBuilder.Entity("Pf2eModel.Model.Base.Keywords.Keyword", b => { b.Navigation("Aliases"); }); modelBuilder.Entity("Pf2eModel.Model.Base.Source.Source", b => { b.Navigation("EntitySources"); }); modelBuilder.Entity("Pf2eModel.Model.Base.Targets.ExternalTarget", b => { b.Navigation("EntityExternals"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Ancestry", b => { b.Navigation("AncestryBoosts"); b.Navigation("AncestryItems"); b.Navigation("AncestryLanguages"); b.Navigation("Heritages"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Background", b => { b.Navigation("BackgroundBoosts"); b.Navigation("BackgroundItems"); b.Navigation("BackgroundSkills"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Class", b => { b.Navigation("ClassKeyAbilities"); b.Navigation("ClassProgressions"); b.Navigation("ClassTrainings"); b.Navigation("SubclassGroups"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Deity", b => { b.Navigation("DeityAttributes"); b.Navigation("DeityDomains"); b.Navigation("DeitySpells"); b.Navigation("DeityWeapons"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Domain", b => { b.Navigation("DeityDomains"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Feat", b => { b.Navigation("FeatPrerequisites"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Ritual", b => { b.Navigation("Area"); b.Navigation("Checks"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Rule", b => { b.Navigation("Children"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Spell", b => { b.Navigation("SpellAreas"); b.Navigation("SpellDefenses"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.Subclass", b => { b.Navigation("Trainings"); }); modelBuilder.Entity("Pf2eModel.Model.Structure.SubclassGroup", b => { b.Navigation("Subclasses"); }); #pragma warning restore 612, 618 } } }