Больше работы над парсингом заклинаний
This commit is contained in:
@@ -46,26 +46,22 @@ public partial class Pf2eDbContext
|
||||
|
||||
private void BindLocaleString<T>(
|
||||
EntityTypeBuilder<T> entity,
|
||||
Expression<Func<T, LocaleString>> func
|
||||
Expression<Func<T, LocaleString?>> func,
|
||||
bool required = true
|
||||
)
|
||||
where T : class
|
||||
{
|
||||
/*
|
||||
entity.OwnsMany(func, d =>
|
||||
{
|
||||
d.ToJson();
|
||||
});
|
||||
*/
|
||||
|
||||
entity
|
||||
.Property(func)
|
||||
.HasConversion(v => v.Serialize(), v => LocaleString.Deserialize(v))
|
||||
.HasColumnType("jsonb");
|
||||
.HasColumnType("jsonb")
|
||||
.IsRequired(required);
|
||||
}
|
||||
|
||||
private void DefineEnums(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder
|
||||
.HasPostgresEnum<ActionEnum>()
|
||||
.HasPostgresEnum<EntityType>()
|
||||
.HasPostgresEnum<EntityRarity>()
|
||||
.HasPostgresEnum<LocaleType>()
|
||||
@@ -83,6 +79,7 @@ public partial class Pf2eDbContext
|
||||
.HasPostgresEnum<SpellAreaType>()
|
||||
.HasPostgresEnum<SpellDamageCategory>()
|
||||
.HasPostgresEnum<SpellDamageKinds>()
|
||||
.HasPostgresEnum<SpellTradition>()
|
||||
.HasPostgresEnum<AttributeValues>()
|
||||
.HasPostgresEnum<TrainingStage>()
|
||||
.HasPostgresEnum<SourceCategory>();
|
||||
@@ -437,6 +434,9 @@ public partial class Pf2eDbContext
|
||||
{
|
||||
BindEntity(entity);
|
||||
|
||||
BindLocaleString(entity, s => s.Trigger, false);
|
||||
BindLocaleString(entity, s => s.Target, false);
|
||||
|
||||
entity
|
||||
.HasMany(e => e.SpellAreas)
|
||||
.WithOne(e => e.Spell)
|
||||
@@ -450,20 +450,16 @@ public partial class Pf2eDbContext
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired(false);
|
||||
|
||||
entity
|
||||
.HasMany(e => e.SpellDamages)
|
||||
.WithOne(e => e.Spell)
|
||||
.HasForeignKey(e => e.SpellId)
|
||||
.OnDelete(DeleteBehavior.Cascade);
|
||||
|
||||
entity
|
||||
.HasMany(e => e.SpellDefenses)
|
||||
.WithOne(e => e.Spell)
|
||||
.HasForeignKey(e => e.SpellId)
|
||||
.OnDelete(DeleteBehavior.Cascade);
|
||||
});
|
||||
modelBuilder.Entity<SpellArea>(entity => { });
|
||||
modelBuilder.Entity<SpellDamage>(entity => { });
|
||||
modelBuilder.Entity<SpellArea>(entity =>
|
||||
{
|
||||
BindLocaleString(entity, a => a.Details, false);
|
||||
});
|
||||
modelBuilder.Entity<SpellDefense>(entity => { });
|
||||
modelBuilder.Entity<SpellRitual>(entity => { });
|
||||
|
||||
|
||||
Reference in New Issue
Block a user