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

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
@@ -13,7 +13,7 @@ using Pf2eModel.Model.Enum;
namespace Pf2eModel.Migrations
{
[DbContext(typeof(Pf2eDbContext))]
[Migration("20250505114131_1")]
[Migration("20250505211157_1")]
partial class _1
{
/// <inheritdoc />
@@ -25,6 +25,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" });
@@ -39,9 +40,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);
@@ -305,19 +307,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")
@@ -325,7 +327,7 @@ namespace Pf2eModel.Migrations
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("suffix")
.HasColumnOrder(2)
.HasColumnOrder(4)
.HasComment("Часть URL до объекта. Для источников Foundry - полный UUID объекта");
b.HasKey("EntityId", "TargetId")
@@ -439,35 +441,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");
@@ -775,8 +757,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);
@@ -1263,65 +1245,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");
@@ -1331,30 +1295,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);
});
@@ -2109,9 +2079,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");
@@ -2120,7 +2091,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()
@@ -2276,9 +2247,7 @@ namespace Pf2eModel.Migrations
modelBuilder.Entity("Pf2eModel.Model.Structure.Spell", b =>
{
b.Navigation("SpellArea");
b.Navigation("SpellDamages");
b.Navigation("SpellAreas");
b.Navigation("SpellDefenses");
@@ -15,6 +15,7 @@ namespace Pf2eModel.Migrations
{
migrationBuilder.AlterDatabase()
.Annotation("Npgsql:Enum:action_category", "unknown,archetype,class-feature,class-feat,offensive,defensive,interaction,familiar,army_tactic,army_war_action,kingdom_activity,kingdom_feat,kingdom_feature")
.Annotation("Npgsql:Enum:action_enum", "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")
.Annotation("Npgsql:Enum:ancestry_vision", "normal,low-light-vision,dark-vision")
.Annotation("Npgsql:Enum:attribute_values", "free,str,dex,con,int,wis,cha")
.Annotation("Npgsql:Enum:class_progression_type", "entity,ancestry_feat,class_feat,general_feat,skill_feat,skill_increase")
@@ -29,9 +30,10 @@ namespace Pf2eModel.Migrations
.Annotation("Npgsql:Enum:locale_type", "english,legacy_english,russian,legacy,hobby,other")
.Annotation("Npgsql:Enum:size", "tiny,small,medium,large")
.Annotation("Npgsql:Enum:source_category", "rulebook,adventure-path,lost-omens,adventures,comics,blog-posts,society")
.Annotation("Npgsql:Enum:spell_area_type", "burst,emanation,cone,line,square,cube,cylinder")
.Annotation("Npgsql:Enum:spell_area_type", "burst,emanation,cone,line,square,cube,cylinder,varies,cuboid,circle,other")
.Annotation("Npgsql:Enum:spell_damage_category", "persistent,splash")
.Annotation("Npgsql:Enum:spell_damage_kinds", "damage,healing,any")
.Annotation("Npgsql:Enum:spell_tradition", "none,divine,occult,arcane,primal,elemental,all")
.Annotation("Npgsql:Enum:training_stage", "untrained,trained,expert,master,legendary")
.Annotation("Npgsql:Enum:trait_type", "regular,class,tradition");
@@ -133,11 +135,7 @@ namespace Pf2eModel.Migrations
columns: table => new
{
id = table.Column<int>(type: "integer", nullable: false),
actions = table.Column<int>(type: "integer", nullable: true),
max_actions = table.Column<int>(type: "integer", nullable: true),
is_reaction = table.Column<bool>(type: "boolean", nullable: false),
is_free_action = table.Column<bool>(type: "boolean", nullable: false),
is_passive = table.Column<bool>(type: "boolean", nullable: false),
actions = table.Column<ActionEnum>(type: "action_enum", nullable: false),
extra = table.Column<string>(type: "text", nullable: true)
},
constraints: table =>
@@ -197,7 +195,7 @@ namespace Pf2eModel.Migrations
hp = table.Column<int>(type: "integer", nullable: false),
perception = table.Column<int>(type: "integer", nullable: false),
spellcasting = table.Column<bool>(type: "boolean", nullable: false),
tradition = table.Column<int>(type: "integer", nullable: false),
tradition = table.Column<SpellTradition>(type: "spell_tradition", nullable: false),
additional_trained_skills = table.Column<int>(type: "integer", nullable: false)
},
constraints: table =>
@@ -301,15 +299,13 @@ namespace Pf2eModel.Migrations
{
id = table.Column<int>(type: "integer", nullable: false),
level = table.Column<int>(type: "integer", nullable: false),
cost = table.Column<int>(type: "integer", nullable: false),
counteraction = table.Column<bool>(type: "boolean", nullable: false),
sustained = table.Column<bool>(type: "boolean", nullable: false),
duration = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: false),
range = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: false),
requirements = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: false),
target = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: false),
time = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: false),
can_heightening = table.Column<bool>(type: "boolean", nullable: false)
actions = table.Column<ActionEnum>(type: "action_enum", nullable: false),
duration = table.Column<int>(type: "integer", maxLength: 255, nullable: true),
is_focus = table.Column<bool>(type: "boolean", nullable: false),
traditions = table.Column<SpellTradition[]>(type: "spell_tradition[]", nullable: false),
range = table.Column<int>(type: "integer", nullable: false),
trigger = table.Column<string>(type: "jsonb", nullable: true),
target = table.Column<string>(type: "jsonb", nullable: true)
},
constraints: table =>
{
@@ -861,14 +857,15 @@ namespace Pf2eModel.Migrations
name: "spell_areas",
columns: table => new
{
id = table.Column<int>(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
spell_id = table.Column<int>(type: "integer", nullable: false),
details = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: true),
type = table.Column<SpellAreaType>(type: "spell_area_type", nullable: false),
value = table.Column<int>(type: "integer", nullable: false)
details = table.Column<string>(type: "jsonb", maxLength: 255, nullable: true),
type = table.Column<SpellAreaType>(type: "spell_area_type", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("pk_spell_areas", x => x.spell_id);
table.PrimaryKey("pk_spell_areas", x => x.id);
table.ForeignKey(
name: "fk_spell_areas_spells_spell_id",
column: x => x.spell_id,
@@ -1206,6 +1203,11 @@ namespace Pf2eModel.Migrations
table: "languages",
column: "entity_id");
migrationBuilder.CreateIndex(
name: "ix_spell_areas_spell_id",
table: "spell_areas",
column: "spell_id");
migrationBuilder.CreateIndex(
name: "ix_spell_damages_spell_id",
table: "spell_damages",
@@ -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");