Капитальный рефактор модели
This commit is contained in:
+2
-1
@@ -1,7 +1,8 @@
|
|||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using NpgsqlTypes;
|
using NpgsqlTypes;
|
||||||
using Pf2eDataScrapper.Model;
|
using Pf2eDataScrapper.Model;
|
||||||
using Pf2eDataScrapper.Model.Common;
|
using Pf2eDataScrapper.Model.Base;
|
||||||
|
using Pf2eDataScrapper.Model.Base.Source;
|
||||||
using Pf2eDataScrapper.Model.Enum;
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.DataBuilder;
|
namespace Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.DataBuilder;
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class Ancestry : IEntity
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public Entity Entity { get; set; } = null!;
|
|
||||||
|
|
||||||
// TODO Size Vision
|
|
||||||
|
|
||||||
public int Hp { get; set; }
|
|
||||||
|
|
||||||
public int Reach { get; set; }
|
|
||||||
|
|
||||||
public int Speed { get; set; }
|
|
||||||
|
|
||||||
public virtual ICollection<AncestryBoost> AncestryBoosts { get; set; } = [];
|
|
||||||
|
|
||||||
public virtual ICollection<AncestryItem> AncestryItems { get; set; } = [];
|
|
||||||
|
|
||||||
public virtual ICollection<AncestryLanguage> AncestryLanguages { get; set; } = [];
|
|
||||||
|
|
||||||
public virtual ICollection<Heritage> Heritages { get; set; } = [];
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class AncestryBoost
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public int AncestryId { get; set; }
|
|
||||||
|
|
||||||
public bool Boost { get; set; }
|
|
||||||
|
|
||||||
public string? Value { get; set; }
|
|
||||||
|
|
||||||
public virtual Ancestry Ancestry { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class AncestryItem
|
|
||||||
{
|
|
||||||
public int AncestryId { get; set; }
|
|
||||||
|
|
||||||
public int ItemId { get; set; }
|
|
||||||
|
|
||||||
public int Level { get; set; }
|
|
||||||
|
|
||||||
public virtual Ancestry Ancestry { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Entity Item { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class AncestryLanguage
|
|
||||||
{
|
|
||||||
public int AncestryId { get; set; }
|
|
||||||
|
|
||||||
public int LanguageId { get; set; }
|
|
||||||
|
|
||||||
public bool IsAdditional { get; set; }
|
|
||||||
|
|
||||||
public virtual Ancestry Ancestry { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Language Language { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class Background : IEntity
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public Entity Entity { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual ICollection<BackgroundBoost> BackgroundBoosts { get; set; } = new List<BackgroundBoost>();
|
|
||||||
|
|
||||||
public virtual ICollection<BackgroundItem> BackgroundItems { get; set; } = new List<BackgroundItem>();
|
|
||||||
|
|
||||||
public virtual ICollection<BackgroundSkill> BackgroundSkills { get; set; } = new List<BackgroundSkill>();
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class BackgroundBoost
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public int BackgroundId { get; set; }
|
|
||||||
|
|
||||||
public string? Value { get; set; }
|
|
||||||
|
|
||||||
public virtual Background Background { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class BackgroundItem
|
|
||||||
{
|
|
||||||
public int BackgroundId { get; set; }
|
|
||||||
|
|
||||||
public int EntityId { get; set; }
|
|
||||||
|
|
||||||
public int? Level { get; set; }
|
|
||||||
|
|
||||||
public virtual Background Background { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Entity Entity { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class BackgroundSkill
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public int BackgroundId { get; set; }
|
|
||||||
|
|
||||||
public string Name { get; set; } = null!;
|
|
||||||
|
|
||||||
public bool IsSkill { get; set; }
|
|
||||||
|
|
||||||
public virtual Background Background { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,52 +1,61 @@
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Pf2eDataScrapper.Model.Base.Keywords;
|
||||||
|
using Pf2eDataScrapper.Model.Base.Source;
|
||||||
|
using Pf2eDataScrapper.Model.Base.Targets;
|
||||||
|
using Pf2eDataScrapper.Model.Common;
|
||||||
using Pf2eDataScrapper.Model.Enum;
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model.Common;
|
namespace Pf2eDataScrapper.Model.Base;
|
||||||
|
|
||||||
[Table("entity")]
|
|
||||||
public class Entity
|
public class Entity
|
||||||
{
|
{
|
||||||
[Key]
|
[System.ComponentModel.DataAnnotations.Key]
|
||||||
[Column("id", Order = 1)]
|
[Column(Order = 1)]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
[Column("name", Order = 2)]
|
[Column(Order = 2)]
|
||||||
[StringLength(255)]
|
[MaxLength(Pf2eDbContext.NameLength)]
|
||||||
[Required]
|
|
||||||
[Comment("Отображаемое имя")]
|
[Comment("Отображаемое имя")]
|
||||||
public string Name { get; set; } = null!;
|
public string Name { get; set; } = null!;
|
||||||
|
|
||||||
[Column("type", Order = 3)]
|
[Column(Order = 3)]
|
||||||
[Required]
|
|
||||||
[Comment("Тип объекта")]
|
[Comment("Тип объекта")]
|
||||||
public EntityType Type { get; set; }
|
public EntityType Type { get; set; }
|
||||||
|
|
||||||
[Column("slug", Order = 4)]
|
[Column(Order = 4)]
|
||||||
[Required]
|
[MaxLength(Pf2eDbContext.NameLength)]
|
||||||
[Comment("Часть имени в URL")]
|
[Comment("Часть имени в URL")]
|
||||||
public string Slug { get; set; } = null!;
|
public string Slug { get; set; } = null!;
|
||||||
|
|
||||||
[Column("img", Order = 5)]
|
[Column(Order = 5)]
|
||||||
[StringLength(255)]
|
[StringLength(255)]
|
||||||
[Comment("Изображение объекта")]
|
[Comment("Изображение объекта")]
|
||||||
public string Img { get; set; } = null!;
|
public string Img { get; set; } = null!;
|
||||||
|
|
||||||
[Column("description")]
|
[Column(Order = 6)]
|
||||||
[Comment("Текстовое описание объекта")]
|
[Comment("Текстовое описание объекта")]
|
||||||
public string Description { get; set; } = null!;
|
public string Description { get; set; } = null!;
|
||||||
|
|
||||||
[Column("rarity")]
|
[Column(Order = 7)]
|
||||||
public EntityRarity Rarity { get; set; } = EntityRarity.Common;
|
public EntityRarity Rarity { get; set; } = EntityRarity.Common;
|
||||||
|
|
||||||
[Column("is_translated")]
|
[Column(Order = 8)]
|
||||||
[Comment("Флаг, указывающий, что у объекта существует перевод")]
|
[Comment("Флаг, указывающий, что у объекта существует перевод")]
|
||||||
public bool? IsTranslated { get; set; } = false;
|
public bool? IsTranslated { get; set; } = false;
|
||||||
|
|
||||||
[Column("is_checked")]
|
[Column(Order = 9)]
|
||||||
[Comment("Флаг, указывающий, что объект был проверен и не требует автоматической перезаписи")]
|
[Comment("Флаг, указывающий, что объект был проверен и не требует автоматической перезаписи")]
|
||||||
public bool? IsChecked { get; set; } = false;
|
public bool? IsChecked { get; set; } = false;
|
||||||
|
|
||||||
public virtual ICollection<Trait> Traits { get; set; } = [];
|
public virtual ICollection<Trait> Traits { get; set; } = [];
|
||||||
|
|
||||||
|
public virtual ICollection<Keyword> Keywords { get; set; } = [];
|
||||||
|
|
||||||
|
public virtual ICollection<EntityAlias> Aliases { get; set; } = [];
|
||||||
|
|
||||||
|
public virtual ICollection<EntitySource> Sources { get; set; } = [];
|
||||||
|
|
||||||
|
public virtual ICollection<EntityExternal> Extrnals { get; set; } = [];
|
||||||
}
|
}
|
||||||
+8
-11
@@ -1,24 +1,21 @@
|
|||||||
using Pf2eDataScrapper.Model.Enum;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model.Common;
|
namespace Pf2eDataScrapper.Model.Base;
|
||||||
|
|
||||||
[Table("entity_alias")]
|
[PrimaryKey(nameof(EntityId), nameof(Type))]
|
||||||
public partial class EntityAlias
|
public partial class EntityAlias
|
||||||
{
|
{
|
||||||
[Key]
|
[Column(Order = 1)]
|
||||||
[Column("id", Order = 1)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
[Column("entity_id", Order = 2)]
|
|
||||||
[ForeignKey("Entity")]
|
|
||||||
public int EntityId { get; set; }
|
public int EntityId { get; set; }
|
||||||
|
|
||||||
[Column("type", Order = 3)]
|
[Column(Order = 2)]
|
||||||
public AliasType Type { get; set; } = AliasType.Other;
|
public AliasType Type { get; set; } = AliasType.Other;
|
||||||
|
|
||||||
[Column("alias", Order = 4)]
|
[Column(Order = 3)]
|
||||||
|
[MaxLength(Pf2eDbContext.NameLength)]
|
||||||
public string Alias { get; set; } = null!;
|
public string Alias { get; set; } = null!;
|
||||||
|
|
||||||
public virtual Entity Entity { get; set; } = null!;
|
public virtual Entity Entity { get; set; } = null!;
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Base.Keywords;
|
||||||
|
|
||||||
|
public partial class Keyword
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public string Slug { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual ICollection<Entity> Entities { get; set; } = [];
|
||||||
|
|
||||||
|
public virtual ICollection<KeywordAlias> Aliases { get; set; } = [];
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Base.Keywords;
|
||||||
|
|
||||||
|
public partial class KeywordAlias
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int KeywordId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
[MaxLength(Pf2eDbContext.NameLength)]
|
||||||
|
public string Value { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Keyword Keyword { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Base.Source;
|
||||||
|
|
||||||
|
[PrimaryKey(nameof(EntityId), nameof(SourceId))]
|
||||||
|
public partial class EntitySource
|
||||||
|
{
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int EntityId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int SourceId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
[MaxLength(255)]
|
||||||
|
[Comment("Номер страницы, эррата и т.д.")]
|
||||||
|
public string Suffix { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
[Comment("Флаг, указывающий, что объект является частью ремастера")]
|
||||||
|
public bool IsRemaster { get; set; }
|
||||||
|
|
||||||
|
public virtual Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Source Source { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Base.Source;
|
||||||
|
|
||||||
|
public partial class Source
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
[MaxLength(Pf2eDbContext.NameLength)]
|
||||||
|
public string Name { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
[MaxLength(255)]
|
||||||
|
public string Url { get; set; } = null!;
|
||||||
|
|
||||||
|
public ICollection<EntitySource> EntitySources { get; set; } = new List<EntitySource>();
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Base.Targets;
|
||||||
|
|
||||||
|
[PrimaryKey(nameof(EntityId), nameof(TargetId))]
|
||||||
|
public partial class EntityExternal
|
||||||
|
{
|
||||||
|
[Column(Order = 0)]
|
||||||
|
public int EntityId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int TargetId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
[MaxLength(255)]
|
||||||
|
[Comment("Часть URL до объекта. Для источников Foundry - полный UUID объекта")]
|
||||||
|
public string Suffix { get; set; } = "";
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
[MaxLength(16)]
|
||||||
|
[Comment("Контроль версии объекта")]
|
||||||
|
public string Md5 { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual ExternalTarget Target { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Base.Targets;
|
||||||
|
|
||||||
|
public partial class ExternalTarget
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
[StringLength(Pf2eDbContext.NameLength)]
|
||||||
|
public string Name { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
[StringLength(255)]
|
||||||
|
public string Icon { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
public virtual ICollection<EntityExternal> EntityExternals { get; set; } = [];
|
||||||
|
}
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class CampaignFeature : IEntity
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public Entity Entity { get; set; } = null!;
|
|
||||||
|
|
||||||
// TODO ActionType Category
|
|
||||||
|
|
||||||
public int? Level { get; set; }
|
|
||||||
|
|
||||||
public int Actions { get; set; }
|
|
||||||
|
|
||||||
public string? Prerequisites { get; set; }
|
|
||||||
|
|
||||||
public string? Extra { get; set; }
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class ClassKeyAbility
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public int ClassId { get; set; }
|
|
||||||
|
|
||||||
public string Value { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Class Class { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class ClassProgression
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public int ClassId { get; set; }
|
|
||||||
|
|
||||||
public int Level { get; set; }
|
|
||||||
|
|
||||||
public int? EntityId { get; set; }
|
|
||||||
|
|
||||||
public virtual Class Class { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Entity? Entity { get; set; }
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class ClassTraining
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public int ClassId { get; set; }
|
|
||||||
|
|
||||||
public int? Item { get; set; }
|
|
||||||
|
|
||||||
public string? Name { get; set; }
|
|
||||||
|
|
||||||
public int Stage { get; set; }
|
|
||||||
|
|
||||||
public virtual Class Class { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Training? ItemNavigation { get; set; }
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model.Common;
|
|
||||||
|
|
||||||
public partial class EntitySource
|
|
||||||
{
|
|
||||||
public int EntityId { get; set; }
|
|
||||||
|
|
||||||
public int SourceId { get; set; }
|
|
||||||
|
|
||||||
public string Suffix { get; set; } = null!;
|
|
||||||
|
|
||||||
public bool IsRemaster { get; set; }
|
|
||||||
|
|
||||||
public virtual Entity Entity { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Source Source { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Common;
|
||||||
|
|
||||||
|
public partial class Frequency
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int Max { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public int Per { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
public int? Value { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Common;
|
||||||
|
|
||||||
|
public partial class Language
|
||||||
|
{
|
||||||
|
[System.ComponentModel.DataAnnotations.Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
[MaxLength(Pf2eDbContext.NameLength)]
|
||||||
|
public string Name { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
[MaxLength(Pf2eDbContext.NameLength)]
|
||||||
|
public string Slug { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
public EntityRarity Rarity { get; set; }
|
||||||
|
}
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model.Common;
|
|
||||||
|
|
||||||
public partial class Source
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public string Name { get; set; } = null!;
|
|
||||||
|
|
||||||
public string Url { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Common;
|
||||||
|
|
||||||
|
public partial class Training
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
[MaxLength(Pf2eDbContext.NameLength)]
|
||||||
|
public string Key { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -1,28 +1,29 @@
|
|||||||
using Pf2eDataScrapper.Model.Enum;
|
using Pf2eDataScrapper.Model.Base;
|
||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model.Common;
|
namespace Pf2eDataScrapper.Model.Common;
|
||||||
|
|
||||||
[Table("trait")]
|
|
||||||
public partial class Trait
|
public partial class Trait
|
||||||
{
|
{
|
||||||
[Key]
|
[System.ComponentModel.DataAnnotations.Key]
|
||||||
[Column("id", Order = 1)]
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
[Column("name", Order = 2)]
|
[Column(Order = 2)]
|
||||||
[Required]
|
[MaxLength(Pf2eDbContext.NameLength)]
|
||||||
public string Name { get; set; } = null!;
|
public string Name { get; set; } = null!;
|
||||||
|
|
||||||
[Column("type", Order = 3)]
|
[Column(Order = 3)]
|
||||||
public TraitType Type { get; set; }
|
public TraitType Type { get; set; }
|
||||||
|
|
||||||
[Column("slug", Order = 4)]
|
[Column(Order = 4)]
|
||||||
[Required]
|
[MaxLength(Pf2eDbContext.NameLength)]
|
||||||
public string Slug { get; set; } = null!;
|
public string Slug { get; set; } = null!;
|
||||||
|
|
||||||
[Column("description", Order = 5)]
|
[Column(Order = 5)]
|
||||||
public string Description { get; set; } = null!;
|
public string Description { get; set; } = null!;
|
||||||
|
|
||||||
public virtual ICollection<Entity> Entities { get; set; } = [];
|
public virtual ICollection<Entity> Entities { get; set; } = [];
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class DeityAttribute
|
|
||||||
{
|
|
||||||
public int DeityId { get; set; }
|
|
||||||
|
|
||||||
public string Attribute { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Deity Deity { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class DeityDomain
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public int DeityId { get; set; }
|
|
||||||
|
|
||||||
public bool IsPrimary { get; set; }
|
|
||||||
|
|
||||||
public string Value { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Deity Deity { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class DeitySpell
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public int DeityId { get; set; }
|
|
||||||
|
|
||||||
public int Level { get; set; }
|
|
||||||
|
|
||||||
public int SpellId { get; set; }
|
|
||||||
|
|
||||||
public virtual Deity Deity { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Spell Spell { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class DeityWeapon
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public int DeityId { get; set; }
|
|
||||||
|
|
||||||
public string Weapon { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Deity Deity { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class EntityExternal
|
|
||||||
{
|
|
||||||
public int EntityId { get; set; }
|
|
||||||
|
|
||||||
public int TargetId { get; set; }
|
|
||||||
|
|
||||||
public string Path { get; set; } = null!;
|
|
||||||
|
|
||||||
public string Suffix { get; set; } = null!;
|
|
||||||
|
|
||||||
public string Md5 { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Entity Entity { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual ExternalTarget Target { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class EntityKeyword
|
|
||||||
{
|
|
||||||
public int EntityId { get; set; }
|
|
||||||
|
|
||||||
public int KeywordId { get; set; }
|
|
||||||
|
|
||||||
public virtual Entity Entity { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Keyword Keyword { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -15,4 +15,19 @@ public enum ActionCategory
|
|||||||
|
|
||||||
[PgName("familiar")]
|
[PgName("familiar")]
|
||||||
familiar,
|
familiar,
|
||||||
|
|
||||||
|
[PgName("army_tactic")]
|
||||||
|
ArmyTactic,
|
||||||
|
|
||||||
|
[PgName("army_war_action")]
|
||||||
|
ArmyWarAction,
|
||||||
|
|
||||||
|
[PgName("kingdom_activity")]
|
||||||
|
KingdomActivity,
|
||||||
|
|
||||||
|
[PgName("kingdom_feat")]
|
||||||
|
KingdomFeat,
|
||||||
|
|
||||||
|
[PgName("kingdom_feature")]
|
||||||
|
KingdomFeature,
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
using NpgsqlTypes;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Enum;
|
||||||
|
|
||||||
|
public enum AttributeValues
|
||||||
|
{
|
||||||
|
[PgName("any")]
|
||||||
|
Any,
|
||||||
|
|
||||||
|
[PgName("str")]
|
||||||
|
Strength,
|
||||||
|
|
||||||
|
[PgName("dex")]
|
||||||
|
Dexterity,
|
||||||
|
|
||||||
|
[PgName("con")]
|
||||||
|
Constitution,
|
||||||
|
|
||||||
|
[PgName("int")]
|
||||||
|
Intelligence,
|
||||||
|
|
||||||
|
[PgName("wis")]
|
||||||
|
Wisdom,
|
||||||
|
|
||||||
|
[PgName("cha")]
|
||||||
|
Charisma
|
||||||
|
}
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
using NpgsqlTypes;
|
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model.Enum;
|
|
||||||
|
|
||||||
public enum CampaignFeatureCategory
|
|
||||||
{
|
|
||||||
[PgName("army_tactic")]
|
|
||||||
ArmyTactic,
|
|
||||||
|
|
||||||
[PgName("army_war_action")]
|
|
||||||
ArmyWarAction,
|
|
||||||
|
|
||||||
[PgName("kingdom_activity")]
|
|
||||||
KingdomActivity,
|
|
||||||
|
|
||||||
[PgName("kingdom_feat")]
|
|
||||||
KingdomFeat,
|
|
||||||
|
|
||||||
[PgName("kingdom_feature")]
|
|
||||||
KingdomFeature,
|
|
||||||
}
|
|
||||||
@@ -36,4 +36,7 @@ public enum FeatCategory
|
|||||||
|
|
||||||
[PgName("pfsboon")]
|
[PgName("pfsboon")]
|
||||||
Pfsboon,
|
Pfsboon,
|
||||||
|
|
||||||
|
[PgName("campaign_feature")]
|
||||||
|
CampaignFeature,
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
namespace Pf2eDataScrapper.Model.Enum;
|
||||||
|
public enum TrainingStage
|
||||||
|
{
|
||||||
|
Untrained = 0,
|
||||||
|
|
||||||
|
Trained = 1,
|
||||||
|
|
||||||
|
Expert = 2,
|
||||||
|
|
||||||
|
Master = 3,
|
||||||
|
|
||||||
|
Legendary = 4,
|
||||||
|
}
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class ExternalTarget
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public string Name { get; set; } = null!;
|
|
||||||
|
|
||||||
public string Icon { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual ICollection<EntityExternal> EntityExternals { get; set; } = new List<EntityExternal>();
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class Feat : IEntity
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public Entity Entity { get; set; } = null!;
|
|
||||||
|
|
||||||
// TODO ActionType Category
|
|
||||||
|
|
||||||
public int? Actions { get; set; }
|
|
||||||
|
|
||||||
public int Level { get; set; }
|
|
||||||
|
|
||||||
public int? LevelTaken { get; set; }
|
|
||||||
|
|
||||||
public int? MaxTakable { get; set; }
|
|
||||||
|
|
||||||
public string? Location { get; set; }
|
|
||||||
|
|
||||||
public bool? OnlyLevel1 { get; set; }
|
|
||||||
|
|
||||||
public string? Extra { get; set; }
|
|
||||||
|
|
||||||
public virtual ICollection<FeatPrerequisite> FeatPrerequisites { get; set; } = new List<FeatPrerequisite>();
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class FeatPrerequisite
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public int FeatId { get; set; }
|
|
||||||
|
|
||||||
public string Value { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Feat Feat { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class Frequency
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public int Max { get; set; }
|
|
||||||
|
|
||||||
public int Per { get; set; }
|
|
||||||
|
|
||||||
public int? Value { get; set; }
|
|
||||||
|
|
||||||
public virtual Entity IdNavigation { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class Heritage : IEntity
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public Entity Entity { get; set; } = null!;
|
|
||||||
|
|
||||||
public int? AncestryId { get; set; }
|
|
||||||
|
|
||||||
public virtual Ancestry? Ancestry { get; set; }
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
using Pf2eDataScrapper.Model.Base;
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model;
|
namespace Pf2eDataScrapper.Model;
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class Keyword
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public string Slug { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class KeywordAlias
|
|
||||||
{
|
|
||||||
public int KeywordId { get; set; }
|
|
||||||
|
|
||||||
public string Value { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Keyword Keyword { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class Language
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public string Name { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual ICollection<AncestryLanguage> AncestryLanguages { get; set; } = new List<AncestryLanguage>();
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,145 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Pf2eDataScrapper.Model.Base;
|
||||||
|
using Pf2eDataScrapper.Model.Base.Keywords;
|
||||||
|
using Pf2eDataScrapper.Model.Base.Source;
|
||||||
|
using Pf2eDataScrapper.Model.Base.Targets;
|
||||||
|
using Pf2eDataScrapper.Model.Common;
|
||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
using Pf2eDataScrapper.Model.Structure;
|
||||||
|
using Pf2eDataScrapper.Model.Structure.AncestryRelation;
|
||||||
|
using Pf2eDataScrapper.Model.Structure.BackgroundRelation;
|
||||||
|
using Pf2eDataScrapper.Model.Structure.ClassRelation;
|
||||||
|
using Pf2eDataScrapper.Model.Structure.DeityRelation;
|
||||||
|
using Pf2eDataScrapper.Model.Structure.FeatRelation;
|
||||||
|
using Pf2eDataScrapper.Model.Structure.SpellRelation;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model;
|
||||||
|
|
||||||
|
public partial class Pf2eDbContext : DbContext
|
||||||
|
{
|
||||||
|
public Pf2eDbContext()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public Pf2eDbContext(DbContextOptions<Pf2eDbContext> options)
|
||||||
|
: base(options)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
#region DbSets
|
||||||
|
|
||||||
|
public virtual DbSet<Structure.Action> Actions { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<Ancestry> Ancestries { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<AncestryBoost> AncestryBoosts { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<AncestryItem> AncestryItems { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<AncestryLanguage> AncestryLanguages { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<Background> Backgrounds { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<BackgroundBoost> BackgroundBoosts { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<BackgroundItem> BackgroundItems { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<BackgroundTraining> BackgroundSkills { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<Class> Classes { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<ClassKeyAbility> ClassKeyAbilities { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<ClassProgression> ClassProgressions { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<ClassTraining> ClassTrainings { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<Condition> Conditions { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<Deity> Deities { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<DeityAttribute> DeityAttributes { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<DeityDomain> DeityDomains { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<DeitySpell> DeitySpells { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<DeityWeapon> DeityWeapons { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<Entity> Entities { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<EntityAlias> EntityAliases { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<EntityExternal> EntityExternals { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<EntitySource> EntitySources { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<ExternalTarget> ExternalTargets { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<Feat> Feats { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<FeatPrerequisite> FeatPrerequisites { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<Frequency> Frequencies { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<Heritage> Heritages { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<Keyword> Keywords { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<KeywordAlias> KeywordAliases { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<Language> Languages { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<Source> Sources { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<Spell> Spells { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<SpellArea> SpellAreas { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<SpellDamage> SpellDamages { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<SpellDefense> SpellDefenses { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<SpellRitual> SpellRituals { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<Training> Trainings { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<Trait> Traits { get; set; }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||||
|
{
|
||||||
|
EnvSettings.Load();
|
||||||
|
optionsBuilder.LogTo(Console.WriteLine);
|
||||||
|
optionsBuilder.UseSnakeCaseNamingConvention();
|
||||||
|
optionsBuilder.UseNpgsql(EnvSettings.DatabaseConnection,
|
||||||
|
builder =>
|
||||||
|
{
|
||||||
|
builder
|
||||||
|
.MapEnum<EntityType>("entity_type")
|
||||||
|
.MapEnum<EntityRarity>("entity_rarity")
|
||||||
|
.MapEnum<AliasType>("alias_type")
|
||||||
|
.MapEnum<TraitType>("trait_type")
|
||||||
|
.MapEnum<ActionType>("action_type")
|
||||||
|
.MapEnum<ActionCategory>("action_category")
|
||||||
|
.MapEnum<Size>("enum_size")
|
||||||
|
.MapEnum<AncestryVision>("ancestry_vision")
|
||||||
|
.MapEnum<ClassProgressionType>("class_progression_type")
|
||||||
|
.MapEnum<ConditionGroup>("condition_group")
|
||||||
|
.MapEnum<DeityCategory>("deity_category")
|
||||||
|
.MapEnum<DeityFonts>("deity_fonts")
|
||||||
|
.MapEnum<DeitySanctification>("deity_sanctification")
|
||||||
|
.MapEnum<FeatActionType>("feat_action_type")
|
||||||
|
.MapEnum<FeatCategory>("feat_category")
|
||||||
|
.MapEnum<SpellAreaType>("spell_area_type")
|
||||||
|
.MapEnum<SpellDamageCategory>("spell_damage_category")
|
||||||
|
.MapEnum<SpellDamageKinds>("spell_damage_kinds")
|
||||||
|
.MapEnum<AttributeValues>()
|
||||||
|
.MapEnum<TrainingStage>()
|
||||||
|
;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,324 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Pf2eDataScrapper.Model.Common;
|
||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
using Pf2eDataScrapper.Model.Structure.AncestryRelation;
|
||||||
|
using Pf2eDataScrapper.Model.Structure.BackgroundRelation;
|
||||||
|
using Pf2eDataScrapper.Model.Structure.ClassRelation;
|
||||||
|
using Pf2eDataScrapper.Model.Structure.DeityRelation;
|
||||||
|
using Pf2eDataScrapper.Model.Structure.FeatRelation;
|
||||||
|
using Pf2eDataScrapper.Model.Structure.SpellRelation;
|
||||||
|
using Pf2eDataScrapper.Model.Structure;
|
||||||
|
using Pf2eDataScrapper.Model.Base.Source;
|
||||||
|
using Pf2eDataScrapper.Model.Base.Targets;
|
||||||
|
using Pf2eDataScrapper.Model.Base;
|
||||||
|
using Pf2eDataScrapper.Model.Base.Keywords;
|
||||||
|
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||||
|
using System.Reflection.Metadata;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model;
|
||||||
|
|
||||||
|
public partial class Pf2eDbContext
|
||||||
|
{
|
||||||
|
public const int NameLength = 255;
|
||||||
|
|
||||||
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
modelBuilder.UseIdentityByDefaultColumns();
|
||||||
|
|
||||||
|
DefineEnums(modelBuilder);
|
||||||
|
DefineBase(modelBuilder);
|
||||||
|
DefineCommon(modelBuilder);
|
||||||
|
DefineStructure(modelBuilder);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DefineEnums(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
modelBuilder
|
||||||
|
.HasPostgresEnum<EntityType>()
|
||||||
|
.HasPostgresEnum<EntityRarity>()
|
||||||
|
.HasPostgresEnum<AliasType>()
|
||||||
|
.HasPostgresEnum<TraitType>()
|
||||||
|
.HasPostgresEnum<ActionType>()
|
||||||
|
.HasPostgresEnum<ActionCategory>()
|
||||||
|
.HasPostgresEnum<Size>()
|
||||||
|
.HasPostgresEnum<AncestryVision>()
|
||||||
|
.HasPostgresEnum<ClassProgressionType>()
|
||||||
|
.HasPostgresEnum<ConditionGroup>()
|
||||||
|
.HasPostgresEnum<DeityCategory>()
|
||||||
|
.HasPostgresEnum<DeityFonts>()
|
||||||
|
.HasPostgresEnum<DeitySanctification>()
|
||||||
|
.HasPostgresEnum<FeatActionType>()
|
||||||
|
.HasPostgresEnum<FeatCategory>()
|
||||||
|
.HasPostgresEnum<SpellAreaType>()
|
||||||
|
.HasPostgresEnum<SpellDamageCategory>()
|
||||||
|
.HasPostgresEnum<SpellDamageKinds>()
|
||||||
|
.HasPostgresEnum<AttributeValues>()
|
||||||
|
.HasPostgresEnum<TrainingStage>()
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DefineBase(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
modelBuilder.Entity<Entity>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasMany(e => e.Traits).WithMany(t => t.Entities);
|
||||||
|
|
||||||
|
entity.HasMany(e => e.Keywords).WithMany(t => t.Entities);
|
||||||
|
|
||||||
|
// EntityAlias
|
||||||
|
entity.HasMany(e => e.Aliases).WithOne(e => e.Entity)
|
||||||
|
.HasForeignKey(e => e.EntityId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
|
// EntitySource
|
||||||
|
entity.HasMany(e => e.Sources).WithOne(e => e.Entity)
|
||||||
|
.HasForeignKey(e => e.EntityId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
|
// EntityExternal
|
||||||
|
entity.HasMany(e => e.Extrnals).WithOne(e => e.Entity)
|
||||||
|
.HasForeignKey(e => e.EntityId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
modelBuilder.Entity<EntityAlias>(entity => { });
|
||||||
|
|
||||||
|
// Source
|
||||||
|
modelBuilder.Entity<Source>(entity =>
|
||||||
|
{
|
||||||
|
entity.Property(e => e.Id).HasColumnName("id");
|
||||||
|
|
||||||
|
entity.HasMany(s => s.EntitySources).WithOne(e => e.Source)
|
||||||
|
.HasForeignKey(e => e.SourceId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
|
// + EntitySource
|
||||||
|
});
|
||||||
|
modelBuilder.Entity<EntitySource>(entity => { });
|
||||||
|
|
||||||
|
// External
|
||||||
|
modelBuilder.Entity<ExternalTarget>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasMany(t => t.EntityExternals).WithOne(e => e.Target)
|
||||||
|
.HasForeignKey(e => e.TargetId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
modelBuilder.Entity<EntityExternal>(entity => { });
|
||||||
|
|
||||||
|
// Keywords
|
||||||
|
modelBuilder.Entity<Keyword>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasMany(e => e.Aliases).WithOne(e => e.Keyword)
|
||||||
|
.HasForeignKey(e => e.KeywordId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
modelBuilder.Entity<KeywordAlias>(entity => { });
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DefineCommon(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
modelBuilder.Entity<Frequency>(entity => { });
|
||||||
|
|
||||||
|
modelBuilder.Entity<Language>(entity => { });
|
||||||
|
|
||||||
|
modelBuilder.Entity<Training>(entity => { });
|
||||||
|
|
||||||
|
modelBuilder.Entity<Trait>(entity => { });
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindEntity<T>(EntityTypeBuilder<T> entity) where T : class, IEntity
|
||||||
|
{
|
||||||
|
entity.HasOne(entity => entity.Entity)
|
||||||
|
.WithOne()
|
||||||
|
.HasForeignKey<T>(entity => entity.Id)
|
||||||
|
.IsRequired();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DefineStructure(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
// Action
|
||||||
|
modelBuilder.Entity<Structure.Action>(entity =>
|
||||||
|
{
|
||||||
|
BindEntity(entity);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Ancestry
|
||||||
|
modelBuilder.Entity<Ancestry>(entity =>
|
||||||
|
{
|
||||||
|
BindEntity(entity);
|
||||||
|
|
||||||
|
entity.HasMany(e => e.AncestryBoosts).WithOne(e => e.Ancestry)
|
||||||
|
.HasForeignKey(e => e.AncestryId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
|
entity.HasMany(e => e.AncestryItems).WithOne(e => e.Ancestry)
|
||||||
|
.HasForeignKey(e => e.AncestryId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
|
entity.HasMany(e => e.AncestryLanguages).WithOne(e => e.Ancestry)
|
||||||
|
.HasForeignKey(e => e.AncestryId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
modelBuilder.Entity<AncestryBoost>(entity => { });
|
||||||
|
modelBuilder.Entity<AncestryItem>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasOne(d => d.Item).WithMany()
|
||||||
|
.HasForeignKey(d => d.ItemId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
modelBuilder.Entity<AncestryLanguage>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasOne(d => d.Language).WithMany()
|
||||||
|
.HasForeignKey(d => d.LanguageId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Background
|
||||||
|
modelBuilder.Entity<Background>(entity =>
|
||||||
|
{
|
||||||
|
BindEntity(entity);
|
||||||
|
});
|
||||||
|
modelBuilder.Entity<BackgroundBoost>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasOne(d => d.Background).WithMany(p => p.BackgroundBoosts)
|
||||||
|
.HasForeignKey(d => d.BackgroundId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
modelBuilder.Entity<BackgroundItem>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasOne(d => d.Background).WithMany(p => p.BackgroundItems)
|
||||||
|
.HasForeignKey(d => d.BackgroundId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
|
entity.HasOne(d => d.Entity).WithMany()
|
||||||
|
.HasForeignKey(d => d.EntityId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
modelBuilder.Entity<BackgroundTraining>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasOne(d => d.Background).WithMany(p => p.BackgroundSkills)
|
||||||
|
.HasForeignKey(d => d.BackgroundId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Class
|
||||||
|
modelBuilder.Entity<Class>(entity =>
|
||||||
|
{
|
||||||
|
BindEntity(entity);
|
||||||
|
});
|
||||||
|
modelBuilder.Entity<ClassKeyAbility>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasOne(d => d.Class).WithMany(p => p.ClassKeyAbilities)
|
||||||
|
.HasForeignKey(d => d.ClassId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
modelBuilder.Entity<ClassProgression>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasOne(d => d.Class).WithMany(p => p.ClassProgressions)
|
||||||
|
.HasForeignKey(d => d.ClassId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
|
entity.HasOne(d => d.Entity).WithMany()
|
||||||
|
.HasForeignKey(d => d.EntityId)
|
||||||
|
.OnDelete(DeleteBehavior.SetNull);
|
||||||
|
});
|
||||||
|
modelBuilder.Entity<ClassTraining>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasOne(d => d.Class).WithMany(p => p.ClassTrainings)
|
||||||
|
.HasForeignKey(d => d.ClassId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
|
entity.HasOne(d => d.Training).WithMany()
|
||||||
|
.HasForeignKey(d => d.TrainingId)
|
||||||
|
.OnDelete(DeleteBehavior.SetNull);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Condition
|
||||||
|
modelBuilder.Entity<Condition>(entity =>
|
||||||
|
{
|
||||||
|
BindEntity(entity);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Deity
|
||||||
|
modelBuilder.Entity<Deity>(entity =>
|
||||||
|
{
|
||||||
|
BindEntity(entity);
|
||||||
|
|
||||||
|
entity.HasMany(e => e.DeityAttributes).WithOne(e => e.Deity)
|
||||||
|
.HasForeignKey(e => e.DeityId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
|
entity.HasMany(e => e.DeityDomains).WithOne(e => e.Deity)
|
||||||
|
.HasForeignKey(e => e.DeityId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
|
entity.HasMany(e => e.DeitySpells).WithOne(e => e.Deity)
|
||||||
|
.HasForeignKey(e => e.DeityId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
|
entity.HasMany(e => e.DeityWeapons).WithOne(e => e.Deity)
|
||||||
|
.HasForeignKey(e => e.DeityId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
|
entity.HasMany(e => e.Skills).WithMany();
|
||||||
|
});
|
||||||
|
modelBuilder.Entity<DeityAttribute>(entity => { });
|
||||||
|
modelBuilder.Entity<DeityDomain>(entity => { });
|
||||||
|
modelBuilder.Entity<DeitySpell>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasOne(d => d.Spell).WithMany()
|
||||||
|
.HasForeignKey(d => d.SpellId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
modelBuilder.Entity<DeityWeapon>(entity => { });
|
||||||
|
|
||||||
|
// Feat
|
||||||
|
modelBuilder.Entity<Feat>(entity =>
|
||||||
|
{
|
||||||
|
BindEntity(entity);
|
||||||
|
|
||||||
|
entity.HasMany(e => e.FeatPrerequisites).WithOne(e => e.Feat)
|
||||||
|
.HasForeignKey(e => e.FeatId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
modelBuilder.Entity<FeatPrerequisite>(entity => { });
|
||||||
|
|
||||||
|
// Heritage
|
||||||
|
modelBuilder.Entity<Heritage>(entity =>
|
||||||
|
{
|
||||||
|
BindEntity(entity);
|
||||||
|
|
||||||
|
entity.HasOne(d => d.Ancestry).WithMany(p => p.Heritages)
|
||||||
|
.HasForeignKey(d => d.AncestryId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Spell
|
||||||
|
modelBuilder.Entity<Spell>(entity =>
|
||||||
|
{
|
||||||
|
BindEntity(entity);
|
||||||
|
|
||||||
|
entity.HasOne(e => e.SpellArea).WithOne(e => e.Spell)
|
||||||
|
.HasForeignKey<SpellArea>(e => e.SpellId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired(false);
|
||||||
|
|
||||||
|
entity.HasOne(e => e.SpellRitual).WithOne(e => e.Spell)
|
||||||
|
.HasForeignKey<SpellArea>(e => e.SpellId)
|
||||||
|
.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<SpellDefense>(entity => { });
|
||||||
|
modelBuilder.Entity<SpellRitual>(entity => { });
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class SpellArea
|
|
||||||
{
|
|
||||||
public int SpellId { get; set; }
|
|
||||||
|
|
||||||
public string? Details { get; set; }
|
|
||||||
|
|
||||||
public int Value { get; set; }
|
|
||||||
|
|
||||||
public virtual Spell Spell { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class SpellDamage
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public int SpellId { get; set; }
|
|
||||||
|
|
||||||
public string Key { get; set; } = null!;
|
|
||||||
|
|
||||||
public bool? ApplyMod { get; set; }
|
|
||||||
|
|
||||||
public string Formula { get; set; } = null!;
|
|
||||||
|
|
||||||
public string? Materials { get; set; }
|
|
||||||
|
|
||||||
public string Type { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Spell Spell { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class SpellDefense
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public int SpellId { get; set; }
|
|
||||||
|
|
||||||
public bool IsPassive { get; set; }
|
|
||||||
|
|
||||||
public bool? IsBasic { get; set; }
|
|
||||||
|
|
||||||
public string Statistic { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Spell Spell { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class SpellRitual
|
|
||||||
{
|
|
||||||
public int SpellId { get; set; }
|
|
||||||
|
|
||||||
public string PrimaryCheck { get; set; } = null!;
|
|
||||||
|
|
||||||
public int SecondaryCasters { get; set; }
|
|
||||||
|
|
||||||
public string SecondaryChecks { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual Spell Spell { get; set; } = null!;
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
using Pf2eDataScrapper.Model.Base;
|
||||||
using Pf2eDataScrapper.Model.Enum;
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
@@ -7,19 +7,26 @@ namespace Pf2eDataScrapper.Model.Structure;
|
|||||||
|
|
||||||
public partial class Action : IEntity
|
public partial class Action : IEntity
|
||||||
{
|
{
|
||||||
[Key]
|
[System.ComponentModel.DataAnnotations.Key]
|
||||||
[Column("id", Order = 1)]
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
[Column(Order = 1)]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public Entity Entity { get; set; } = null!;
|
[Column(Order = 2)]
|
||||||
|
|
||||||
public ActionType Type { get; set; }
|
public ActionType Type { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
public ActionCategory Category { get; set; }
|
public ActionCategory Category { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
public int? Actions { get; set; }
|
public int? Actions { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 5)]
|
||||||
public bool? DeathNote { get; set; }
|
public bool? DeathNote { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 6)]
|
||||||
public string? Extra { get; set; }
|
public string? Extra { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public Entity Entity { get; set; } = null!;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
using Pf2eDataScrapper.Model.Base;
|
||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
using Pf2eDataScrapper.Model.Structure.AncestryRelation;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure;
|
||||||
|
|
||||||
|
public partial class Ancestry : IEntity
|
||||||
|
{
|
||||||
|
[System.ComponentModel.DataAnnotations.Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public Size Size { get; set; } = Size.med;
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public int Hp { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
public int Reach { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 5)]
|
||||||
|
public int Speed { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 6)]
|
||||||
|
public AncestryVision Vision { get; set; } = AncestryVision.normal;
|
||||||
|
|
||||||
|
public virtual ICollection<AncestryBoost> AncestryBoosts { get; set; } = [];
|
||||||
|
|
||||||
|
public virtual ICollection<AncestryItem> AncestryItems { get; set; } = [];
|
||||||
|
|
||||||
|
public virtual ICollection<AncestryLanguage> AncestryLanguages { get; set; } = [];
|
||||||
|
|
||||||
|
public virtual ICollection<Heritage> Heritages { get; set; } = [];
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.AncestryRelation;
|
||||||
|
|
||||||
|
public partial class AncestryBoost
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int AncestryId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public bool Boost { get; set; } = true;
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
public Enum.AttributeValues Value { get; set; }
|
||||||
|
|
||||||
|
public virtual Ancestry Ancestry { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
using Pf2eDataScrapper.Model.Structure;
|
||||||
|
using Pf2eDataScrapper.Model.Base;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.AncestryRelation;
|
||||||
|
|
||||||
|
[PrimaryKey(nameof(AncestryId), nameof(ItemId))]
|
||||||
|
public partial class AncestryItem
|
||||||
|
{
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int AncestryId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int ItemId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public int Level { get; set; }
|
||||||
|
|
||||||
|
public virtual Ancestry Ancestry { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Entity Item { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Pf2eDataScrapper.Model.Common;
|
||||||
|
using Pf2eDataScrapper.Model.Structure;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.AncestryRelation;
|
||||||
|
|
||||||
|
[PrimaryKey(nameof(AncestryId), nameof(LanguageId))]
|
||||||
|
public partial class AncestryLanguage
|
||||||
|
{
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int AncestryId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int LanguageId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public bool IsAdditional { get; set; }
|
||||||
|
|
||||||
|
public virtual Ancestry Ancestry { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Language Language { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
using Pf2eDataScrapper.Model.Structure.BackgroundRelation;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using Pf2eDataScrapper.Model.Base;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure;
|
||||||
|
|
||||||
|
public partial class Background : IEntity
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual ICollection<BackgroundBoost> BackgroundBoosts { get; set; } = [];
|
||||||
|
|
||||||
|
public virtual ICollection<BackgroundItem> BackgroundItems { get; set; } = [];
|
||||||
|
|
||||||
|
public virtual ICollection<BackgroundTraining> BackgroundSkills { get; set; } = [];
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.BackgroundRelation;
|
||||||
|
|
||||||
|
public partial class BackgroundBoost
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int BackgroundId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public AttributeValues Attribute { get; set; }
|
||||||
|
|
||||||
|
public virtual Background Background { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
using Pf2eDataScrapper.Model.Structure;
|
||||||
|
using Pf2eDataScrapper.Model.Base;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.BackgroundRelation;
|
||||||
|
|
||||||
|
[PrimaryKey(nameof(BackgroundId), nameof(EntityId))]
|
||||||
|
public partial class BackgroundItem
|
||||||
|
{
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int BackgroundId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int EntityId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public int? Level { get; set; }
|
||||||
|
|
||||||
|
public virtual Background Background { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Entity Entity { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using Pf2eDataScrapper.Model.Common;
|
||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.BackgroundRelation;
|
||||||
|
|
||||||
|
public partial class BackgroundTraining
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int BackgroundId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public int TrainingId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
public TrainingStage Level { get; set; }
|
||||||
|
|
||||||
|
public virtual Background Background { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Training Training { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -1,24 +1,34 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
using Pf2eDataScrapper.Model.Structure.ClassRelation;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using Pf2eDataScrapper.Model.Base;
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model;
|
namespace Pf2eDataScrapper.Model.Structure;
|
||||||
|
|
||||||
public partial class Class : IEntity
|
public partial class Class : IEntity
|
||||||
{
|
{
|
||||||
|
[Key]
|
||||||
|
[Column(Order = 1)]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
public Entity Entity { get; set; } = null!;
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
public int Hp { get; set; }
|
public int Hp { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
public int Perception { get; set; }
|
public int Perception { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 5)]
|
||||||
public bool Spellcasting { get; set; }
|
public bool Spellcasting { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 6)]
|
||||||
public int AdditionalTrainedSkills { get; set; }
|
public int AdditionalTrainedSkills { get; set; }
|
||||||
|
|
||||||
public virtual ICollection<ClassKeyAbility> ClassKeyAbilities { get; set; } = new List<ClassKeyAbility>();
|
public virtual ICollection<ClassKeyAbility> ClassKeyAbilities { get; set; } = [];
|
||||||
|
|
||||||
public virtual ICollection<ClassProgression> ClassProgressions { get; set; } = new List<ClassProgression>();
|
public virtual ICollection<ClassProgression> ClassProgressions { get; set; } = [];
|
||||||
|
|
||||||
public virtual ICollection<ClassTraining> ClassTrainings { get; set; } = new List<ClassTraining>();
|
public virtual ICollection<ClassTraining> ClassTrainings { get; set; } = [];
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.ClassRelation;
|
||||||
|
|
||||||
|
public partial class ClassKeyAbility
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int ClassId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public AttributeValues Value { get; set; }
|
||||||
|
|
||||||
|
public virtual Class Class { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
namespace Pf2eDataScrapper.Model.Structure.ClassRelation;
|
||||||
|
using Pf2eDataScrapper.Model.Base;
|
||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
public partial class ClassProgression
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int ClassId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 31)]
|
||||||
|
public int Level { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
public ClassProgressionType Type { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 5)]
|
||||||
|
public int? EntityId { get; set; }
|
||||||
|
|
||||||
|
public virtual Class Class { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Entity? Entity { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
using Pf2eDataScrapper.Model.Common;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.ClassRelation;
|
||||||
|
|
||||||
|
public partial class ClassTraining
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int ClassId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public int? TrainingId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
[MaxLength(Pf2eDbContext.NameLength)]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 5)]
|
||||||
|
public int Stage { get; set; }
|
||||||
|
|
||||||
|
public virtual Class Class { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Training? Training { get; set; }
|
||||||
|
}
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
using Pf2eDataScrapper.Model.Enum;
|
using Pf2eDataScrapper.Model.Base;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model.Structure;
|
namespace Pf2eDataScrapper.Model.Structure;
|
||||||
|
|
||||||
[Table("condition")]
|
|
||||||
public partial class Condition : IEntity
|
public partial class Condition : IEntity
|
||||||
{
|
{
|
||||||
[Key]
|
[Key]
|
||||||
[Column("id", Order = 1)]
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
[Column(Order = 1)]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public Entity Entity { get; set; } = null!;
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
[Column("group", Order = 2)]
|
[Column(Order = 2)]
|
||||||
public ConditionGroup? Group { get; set; }
|
public ConditionGroup? Group { get; set; }
|
||||||
|
|
||||||
[Column("extra", Order = 3)]
|
[Column(Order = 3)]
|
||||||
public string? Extra { get; set; }
|
public string? Extra { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,31 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
using Pf2eDataScrapper.Model.Common;
|
||||||
|
using Pf2eDataScrapper.Model.Base;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using Pf2eDataScrapper.Model.Structure.DeityRelation;
|
||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model;
|
namespace Pf2eDataScrapper.Model.Structure;
|
||||||
|
|
||||||
public partial class Deity : IEntity
|
public partial class Deity : IEntity
|
||||||
{
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
[Column(Order = 1)]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public Entity Entity { get; set; } = null!;
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
// TODO Category Font Sanctification
|
[Column(Order = 2)]
|
||||||
|
public DeityCategory Category { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public DeityFonts Fonts { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
public DeitySanctification Sanctification { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 5)]
|
||||||
public bool SanctificationMust { get; set; }
|
public bool SanctificationMust { get; set; }
|
||||||
|
|
||||||
public virtual ICollection<DeityAttribute> DeityAttributes { get; set; } = new List<DeityAttribute>();
|
public virtual ICollection<DeityAttribute> DeityAttributes { get; set; } = new List<DeityAttribute>();
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.DeityRelation;
|
||||||
|
|
||||||
|
[PrimaryKey(nameof(DeityId), nameof(Attribute))]
|
||||||
|
public partial class DeityAttribute
|
||||||
|
{
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int DeityId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public AttributeValues Attribute { get; set; }
|
||||||
|
|
||||||
|
public virtual Deity Deity { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.DeityRelation;
|
||||||
|
|
||||||
|
public partial class DeityDomain
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int DeityId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public bool IsPrimary { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
[MaxLength(Pf2eDbContext.NameLength)]
|
||||||
|
public string Value { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Deity Deity { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.DeityRelation;
|
||||||
|
|
||||||
|
public partial class DeitySpell
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int DeityId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public int Level { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
public int SpellId { get; set; }
|
||||||
|
|
||||||
|
public virtual Deity Deity { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Spell Spell { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.DeityRelation;
|
||||||
|
|
||||||
|
public partial class DeityWeapon
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int DeityId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
[MaxLength(Pf2eDbContext.NameLength)]
|
||||||
|
public string Weapon { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Deity Deity { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
using Pf2eDataScrapper.Model.Structure.FeatRelation;
|
||||||
|
using Pf2eDataScrapper.Model.Base;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure;
|
||||||
|
|
||||||
|
public partial class Feat : IEntity
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public ActionType Type { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public ActionCategory Category { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
public int? Actions { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 5)]
|
||||||
|
public int Level { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 6)]
|
||||||
|
public int? LevelTaken { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 7)]
|
||||||
|
public int? MaxTakable { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 8)]
|
||||||
|
[MaxLength(255)]
|
||||||
|
public string? Location { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 9)]
|
||||||
|
public bool? OnlyLevel1 { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 10)]
|
||||||
|
public string? Extra { get; set; }
|
||||||
|
|
||||||
|
public virtual ICollection<FeatPrerequisite> FeatPrerequisites { get; set; } = [];
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
using Pf2eDataScrapper.Model.Structure;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.FeatRelation;
|
||||||
|
|
||||||
|
public partial class FeatPrerequisite
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int FeatId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
[MaxLength(255)]
|
||||||
|
public string Value { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Feat Feat { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using Pf2eDataScrapper.Model.Base;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure;
|
||||||
|
|
||||||
|
public partial class Heritage : IEntity
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int? AncestryId { get; set; }
|
||||||
|
|
||||||
|
public virtual Ancestry? Ancestry { get; set; }
|
||||||
|
}
|
||||||
@@ -1,40 +1,60 @@
|
|||||||
using Pf2eDataScrapper.Model.Common;
|
using Pf2eDataScrapper.Model.Structure.DeityRelation;
|
||||||
|
using Pf2eDataScrapper.Model.Structure.SpellRelation;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using Pf2eDataScrapper.Model.Base;
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Model;
|
namespace Pf2eDataScrapper.Model.Structure;
|
||||||
|
|
||||||
public partial class Spell : IEntity
|
public partial class Spell : IEntity
|
||||||
{
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
[Column(Order = 1)]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public Entity Entity { get; set; } = null!;
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
public int Level { get; set; }
|
public int Level { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
public int Cost { get; set; }
|
public int Cost { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
public bool Counteraction { get; set; }
|
public bool Counteraction { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 5)]
|
||||||
public bool Sustained { get; set; }
|
public bool Sustained { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 6)]
|
||||||
|
[MaxLength(255)]
|
||||||
public string Duration { get; set; } = null!;
|
public string Duration { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 7)]
|
||||||
|
[MaxLength(255)]
|
||||||
public string Range { get; set; } = null!;
|
public string Range { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 8)]
|
||||||
|
[MaxLength(255)]
|
||||||
public string Requirements { get; set; } = null!;
|
public string Requirements { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 9)]
|
||||||
|
[MaxLength(255)]
|
||||||
public string Target { get; set; } = null!;
|
public string Target { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 10)]
|
||||||
|
[MaxLength(255)]
|
||||||
public string Time { get; set; } = null!;
|
public string Time { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 11)]
|
||||||
public bool CanHeightening { get; set; }
|
public bool CanHeightening { get; set; }
|
||||||
|
|
||||||
public virtual ICollection<DeitySpell> DeitySpells { get; set; } = new List<DeitySpell>();
|
|
||||||
|
|
||||||
public virtual SpellArea? SpellArea { get; set; }
|
public virtual SpellArea? SpellArea { get; set; }
|
||||||
|
|
||||||
|
public virtual SpellRitual? SpellRitual { get; set; }
|
||||||
|
|
||||||
public virtual ICollection<SpellDamage> SpellDamages { get; set; } = new List<SpellDamage>();
|
public virtual ICollection<SpellDamage> SpellDamages { get; set; } = new List<SpellDamage>();
|
||||||
|
|
||||||
public virtual ICollection<SpellDefense> SpellDefenses { get; set; } = new List<SpellDefense>();
|
public virtual ICollection<SpellDefense> SpellDefenses { get; set; } = new List<SpellDefense>();
|
||||||
|
|
||||||
public virtual SpellRitual? SpellRitual { get; set; }
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
using Pf2eDataScrapper.Model.Structure;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.SpellRelation;
|
||||||
|
|
||||||
|
public partial class SpellArea
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int SpellId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
[MaxLength(255)]
|
||||||
|
public string? Details { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public SpellAreaType Type { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
public int Value { get; set; }
|
||||||
|
|
||||||
|
public virtual Spell Spell { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
using Pf2eDataScrapper.Model.Structure;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.SpellRelation;
|
||||||
|
|
||||||
|
public partial class SpellDamage
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int SpellId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
[MaxLength(255)]
|
||||||
|
public string Key { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
public bool? ApplyMod { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 5)]
|
||||||
|
public SpellDamageCategory? Category { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 6)]
|
||||||
|
[MaxLength(255)]
|
||||||
|
public string Formula { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 7)]
|
||||||
|
public SpellDamageKinds Kinds { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 8)]
|
||||||
|
[MaxLength(255)]
|
||||||
|
public string? Materials { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 9)]
|
||||||
|
[MaxLength(255)]
|
||||||
|
public string Type { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Spell Spell { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
using Pf2eDataScrapper.Model.Structure;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.SpellRelation;
|
||||||
|
|
||||||
|
public partial class SpellDefense
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
public int SpellId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public bool IsPassive { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
public bool? IsBasic { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 5)]
|
||||||
|
[MaxLength(255)]
|
||||||
|
public string Statistic { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Spell Spell { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
using Pf2eDataScrapper.Model.Structure;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace Pf2eDataScrapper.Model.Structure.SpellRelation;
|
||||||
|
|
||||||
|
public partial class SpellRitual
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
[Column(Order = 1)]
|
||||||
|
public int SpellId { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 2)]
|
||||||
|
[MaxLength(255)]
|
||||||
|
public string PrimaryCheck { get; set; } = null!;
|
||||||
|
|
||||||
|
[Column(Order = 3)]
|
||||||
|
public int SecondaryCasters { get; set; }
|
||||||
|
|
||||||
|
[Column(Order = 4)]
|
||||||
|
[MaxLength(255)]
|
||||||
|
public string SecondaryChecks { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Spell Spell { get; set; } = null!;
|
||||||
|
}
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
|
||||||
|
|
||||||
public partial class Training
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public string Key { get; set; } = null!;
|
|
||||||
|
|
||||||
public virtual ICollection<ClassTraining> ClassTrainings { get; set; } = [];
|
|
||||||
|
|
||||||
public virtual ICollection<Deity> Deities { get; set; } = [];
|
|
||||||
}
|
|
||||||
@@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="dotenv.net" Version="3.2.1" />
|
<PackageReference Include="dotenv.net" Version="3.2.1" />
|
||||||
|
<PackageReference Include="EFCore.NamingConventions" Version="9.0.0" />
|
||||||
<PackageReference Include="Goblinfactory.ProgressBar" Version="1.0.0" />
|
<PackageReference Include="Goblinfactory.ProgressBar" Version="1.0.0" />
|
||||||
<PackageReference Include="linq2db" Version="5.4.1" />
|
<PackageReference Include="linq2db" Version="5.4.1" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.4" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.4" />
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user