Больше работы над парсингом заклинаний

This commit is contained in:
2025-05-06 01:23:34 +04:00
parent c1b70a12eb
commit 5693fa8ce8
13 changed files with 279 additions and 239 deletions
@@ -22,6 +22,7 @@ namespace Pf2eModel.Migrations
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "action_category", new[] { "unknown", "archetype", "class-feature", "class-feat", "offensive", "defensive", "interaction", "familiar", "army_tactic", "army_war_action", "kingdom_activity", "kingdom_feat", "kingdom_feature" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "action_enum", new[] { "unknown", "1", "2", "3", "reaction", "free", "passive", "other", "1-3", "1-2", "2-3", "2/2 rounds", "reaction/1", "reaction/2", "reaction/3", "free/1", "1 minute", "5 minutes", "10 minutes", "30 minutes", "1 hour" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "ancestry_vision", new[] { "normal", "low-light-vision", "dark-vision" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "attribute_values", new[] { "free", "str", "dex", "con", "int", "wis", "cha" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "class_progression_type", new[] { "entity", "ancestry_feat", "class_feat", "general_feat", "skill_feat", "skill_increase" });
@@ -36,9 +37,10 @@ namespace Pf2eModel.Migrations
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "locale_type", new[] { "english", "legacy_english", "russian", "legacy", "hobby", "other" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "size", new[] { "tiny", "small", "medium", "large" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "source_category", new[] { "rulebook", "adventure-path", "lost-omens", "adventures", "comics", "blog-posts", "society" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "spell_area_type", new[] { "burst", "emanation", "cone", "line", "square", "cube", "cylinder" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "spell_area_type", new[] { "burst", "emanation", "cone", "line", "square", "cube", "cylinder", "varies", "cuboid", "circle", "other" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "spell_damage_category", new[] { "persistent", "splash" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "spell_damage_kinds", new[] { "damage", "healing", "any" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "spell_tradition", new[] { "none", "divine", "occult", "arcane", "primal", "elemental", "all" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "training_stage", new[] { "untrained", "trained", "expert", "master", "legendary" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "trait_type", new[] { "regular", "class", "tradition" });
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
@@ -302,19 +304,19 @@ namespace Pf2eModel.Migrations
b.Property<int>("EntityId")
.HasColumnType("integer")
.HasColumnName("entity_id")
.HasColumnOrder(0);
.HasColumnOrder(1);
b.Property<int>("TargetId")
.HasColumnType("integer")
.HasColumnName("target_id")
.HasColumnOrder(1);
.HasColumnOrder(2);
b.Property<string>("Md5")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("md5")
.HasColumnOrder(3)
.HasColumnOrder(5)
.HasComment("Контроль версии объекта");
b.Property<string>("Suffix")
@@ -322,7 +324,7 @@ namespace Pf2eModel.Migrations
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("suffix")
.HasColumnOrder(2)
.HasColumnOrder(4)
.HasComment("Часть URL до объекта. Для источников Foundry - полный UUID объекта");
b.HasKey("EntityId", "TargetId")
@@ -436,35 +438,15 @@ namespace Pf2eModel.Migrations
.HasColumnName("id")
.HasColumnOrder(1);
b.Property<int?>("Actions")
.HasColumnType("integer")
b.Property<ActionEnum>("Actions")
.HasColumnType("action_enum")
.HasColumnName("actions")
.HasColumnOrder(3);
.HasColumnOrder(2);
b.Property<string>("Extra")
.HasColumnType("text")
.HasColumnName("extra")
.HasColumnOrder(6);
b.Property<bool>("IsFreeAction")
.HasColumnType("boolean")
.HasColumnName("is_free_action")
.HasColumnOrder(6);
b.Property<bool>("IsPassive")
.HasColumnType("boolean")
.HasColumnName("is_passive")
.HasColumnOrder(6);
b.Property<bool>("IsReaction")
.HasColumnType("boolean")
.HasColumnName("is_reaction")
.HasColumnOrder(5);
b.Property<int?>("MaxActions")
.HasColumnType("integer")
.HasColumnName("max_actions")
.HasColumnOrder(4);
.HasColumnOrder(3);
b.HasKey("Id")
.HasName("pk_actions");
@@ -772,8 +754,8 @@ namespace Pf2eModel.Migrations
.HasColumnName("spellcasting")
.HasColumnOrder(5);
b.Property<int>("Tradition")
.HasColumnType("integer")
b.Property<SpellTradition>("Tradition")
.HasColumnType("spell_tradition")
.HasColumnName("tradition")
.HasColumnOrder(6);
@@ -1260,65 +1242,47 @@ namespace Pf2eModel.Migrations
.HasColumnName("id")
.HasColumnOrder(1);
b.Property<bool>("CanHeightening")
.HasColumnType("boolean")
.HasColumnName("can_heightening")
.HasColumnOrder(11);
b.Property<int>("Cost")
.HasColumnType("integer")
.HasColumnName("cost")
b.Property<ActionEnum>("Actions")
.HasColumnType("action_enum")
.HasColumnName("actions")
.HasColumnOrder(3);
b.Property<bool>("Counteraction")
.HasColumnType("boolean")
.HasColumnName("counteraction")
b.Property<int?>("Duration")
.HasMaxLength(255)
.HasColumnType("integer")
.HasColumnName("duration")
.HasColumnOrder(4);
b.Property<string>("Duration")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("duration")
.HasColumnOrder(6);
b.Property<bool>("IsFocus")
.HasColumnType("boolean")
.HasColumnName("is_focus")
.HasColumnOrder(5);
b.Property<int>("Level")
.HasColumnType("integer")
.HasColumnName("level")
.HasColumnOrder(2);
b.Property<string>("Range")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("character varying(255)")
b.Property<int>("Range")
.HasColumnType("integer")
.HasColumnName("range")
.HasColumnOrder(7);
b.Property<string>("Requirements")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("requirements")
.HasColumnOrder(8);
b.Property<bool>("Sustained")
.HasColumnType("boolean")
.HasColumnName("sustained")
.HasColumnOrder(5);
.HasColumnOrder(6);
b.Property<string>("Target")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnType("jsonb")
.HasColumnName("target")
.HasColumnOrder(9);
.HasColumnOrder(8);
b.Property<string>("Time")
b.PrimitiveCollection<SpellTradition[]>("Traditions")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("time")
.HasColumnOrder(10);
.HasColumnType("spell_tradition[]")
.HasColumnName("traditions")
.HasColumnOrder(6);
b.Property<string>("Trigger")
.HasColumnType("jsonb")
.HasColumnName("trigger")
.HasColumnOrder(7);
b.HasKey("Id")
.HasName("pk_spells");
@@ -1328,30 +1292,36 @@ namespace Pf2eModel.Migrations
modelBuilder.Entity("Pf2eModel.Model.Structure.SpellRelation.SpellArea", b =>
{
b.Property<int>("SpellId")
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("spell_id")
.HasColumnName("id")
.HasColumnOrder(1);
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("Details")
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnType("jsonb")
.HasColumnName("details")
.HasColumnOrder(3);
b.Property<int>("SpellId")
.HasColumnType("integer")
.HasColumnName("spell_id")
.HasColumnOrder(2);
b.Property<SpellAreaType>("Type")
.HasColumnType("spell_area_type")
.HasColumnName("type")
.HasColumnOrder(3);
b.Property<int>("Value")
.HasColumnType("integer")
.HasColumnName("value")
.HasColumnOrder(4);
b.HasKey("SpellId")
b.HasKey("Id")
.HasName("pk_spell_areas");
b.HasIndex("SpellId")
.HasDatabaseName("ix_spell_areas_spell_id");
b.ToTable("spell_areas", (string)null);
});
@@ -2106,9 +2076,10 @@ namespace Pf2eModel.Migrations
modelBuilder.Entity("Pf2eModel.Model.Structure.SpellRelation.SpellArea", b =>
{
b.HasOne("Pf2eModel.Model.Structure.Spell", "Spell")
.WithOne("SpellArea")
.HasForeignKey("Pf2eModel.Model.Structure.SpellRelation.SpellArea", "SpellId")
.WithMany("SpellAreas")
.HasForeignKey("SpellId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_spell_areas_spells_spell_id");
b.Navigation("Spell");
@@ -2117,7 +2088,7 @@ namespace Pf2eModel.Migrations
modelBuilder.Entity("Pf2eModel.Model.Structure.SpellRelation.SpellDamage", b =>
{
b.HasOne("Pf2eModel.Model.Structure.Spell", "Spell")
.WithMany("SpellDamages")
.WithMany()
.HasForeignKey("SpellId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
@@ -2273,9 +2244,7 @@ namespace Pf2eModel.Migrations
modelBuilder.Entity("Pf2eModel.Model.Structure.Spell", b =>
{
b.Navigation("SpellArea");
b.Navigation("SpellDamages");
b.Navigation("SpellAreas");
b.Navigation("SpellDefenses");