Переход от наследования таблиц на 1-1 связи
This commit is contained in:
+68
-5
@@ -1,4 +1,8 @@
|
|||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
|
using NpgsqlTypes;
|
||||||
|
using Pf2eDataScrapper.Model;
|
||||||
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
using System.ComponentModel;
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.DataBuilder
|
namespace Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.DataBuilder
|
||||||
{
|
{
|
||||||
@@ -8,23 +12,49 @@ namespace Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.DataBuilder
|
|||||||
|
|
||||||
public readonly JObject Input = input;
|
public readonly JObject Input = input;
|
||||||
|
|
||||||
public abstract void Process();
|
protected DataBuilderHelper Helper = DataBuilderHelper.Instance;
|
||||||
|
|
||||||
|
public Entity Entity { get; set; } = new Entity();
|
||||||
|
|
||||||
|
public abstract EntityType Type { get; }
|
||||||
|
|
||||||
|
public abstract IEntity Object { get; }
|
||||||
|
|
||||||
|
public virtual void Process()
|
||||||
|
{
|
||||||
|
Entity.Id = Helper.NextId;
|
||||||
|
Entity.Type = Type;
|
||||||
|
|
||||||
|
Entity.Name = GetRequired<string>("name");
|
||||||
|
Entity.Img = GetRequired<string>("img");
|
||||||
|
Entity.Description = GetRequired<string>("system.description.value");
|
||||||
|
Entity.DescriptionGm = GetOptional<string>("system.description.gm");
|
||||||
|
|
||||||
|
Entity.IsTranslated = false;
|
||||||
|
Entity.IsChecked = false;
|
||||||
|
|
||||||
|
Entity.Slug = Helper.GenerateSlug(Entity.Name);
|
||||||
|
|
||||||
|
Object.Id = Entity.Id;
|
||||||
|
|
||||||
|
Context.Entities.Add(Entity);
|
||||||
|
|
||||||
|
// TODO Traits, Alias
|
||||||
|
}
|
||||||
|
|
||||||
public void Save()
|
public void Save()
|
||||||
{
|
{
|
||||||
Context.SaveChanges();
|
Context.SaveChanges();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public T GetRequired<T>(string path)
|
||||||
|
|
||||||
protected T GetRequired<T>(string path)
|
|
||||||
{
|
{
|
||||||
var token = Input.SelectToken(path) ?? throw new NullReferenceException($"'{path}' is null");
|
var token = Input.SelectToken(path) ?? throw new NullReferenceException($"'{path}' is null");
|
||||||
|
|
||||||
return token.ToObject<T>() ?? throw new NullReferenceException($"'{path}' is null");
|
return token.ToObject<T>() ?? throw new NullReferenceException($"'{path}' is null");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected T? GetOptional<T>(string path)
|
public T? GetOptional<T>(string path)
|
||||||
{
|
{
|
||||||
var token = Input.SelectToken(path) ?? null;
|
var token = Input.SelectToken(path) ?? null;
|
||||||
|
|
||||||
@@ -36,6 +66,39 @@ namespace Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.DataBuilder
|
|||||||
return token.ToObject<T>() ?? default;
|
return token.ToObject<T>() ?? default;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public T EnumRequired<T>(string path) where T : Enum
|
||||||
|
{
|
||||||
|
return EnumOptional<T>(path) ?? throw new Exception($"Can't resolve Enum value for {typeof(T).Name} in path {path}");
|
||||||
|
}
|
||||||
|
|
||||||
|
public T? EnumOptional<T>(string path) where T : Enum
|
||||||
|
{
|
||||||
|
string? value = GetOptional<string>(path);
|
||||||
|
|
||||||
|
if (value == null)
|
||||||
|
{
|
||||||
|
return default;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var field in typeof(T).GetFields())
|
||||||
|
{
|
||||||
|
if (Attribute.GetCustomAttribute(field, typeof(PgNameAttribute)) is PgNameAttribute attribute)
|
||||||
|
{
|
||||||
|
if (attribute.PgName == value)
|
||||||
|
{
|
||||||
|
return (T)field.GetValue(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (field.Name == value)
|
||||||
|
{
|
||||||
|
return (T)field.GetValue(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return default;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-64
@@ -1,5 +1,4 @@
|
|||||||
using Newtonsoft.Json.Linq;
|
using Slugify;
|
||||||
using Npgsql;
|
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.DataBuilder
|
namespace Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.DataBuilder
|
||||||
{
|
{
|
||||||
@@ -7,76 +6,23 @@ namespace Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.DataBuilder
|
|||||||
{
|
{
|
||||||
public Pf2eDatabase Database = Pf2eDatabase.Instance;
|
public Pf2eDatabase Database = Pf2eDatabase.Instance;
|
||||||
|
|
||||||
|
public SlugHelper Slugger = new();
|
||||||
|
|
||||||
private DataBuilderHelper()
|
private DataBuilderHelper()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public NpgsqlCommand PrepareInsert(string table, Dictionary<string, object?> data, bool returnId)
|
private int _id = 0;
|
||||||
|
|
||||||
|
public int NextId { get => ++_id; }
|
||||||
|
|
||||||
|
public string GenerateSlug(string name)
|
||||||
{
|
{
|
||||||
List<string> columns = [];
|
return Slugger.GenerateSlug(name);
|
||||||
List<string> patterns = [];
|
|
||||||
|
|
||||||
foreach (var key in data.Keys)
|
|
||||||
{
|
|
||||||
columns.Add(key);
|
|
||||||
patterns.Add($":{key.ToUpper()}");
|
|
||||||
}
|
|
||||||
|
|
||||||
string dml = $"INSERT INTO {table} (\"{string.Join("\", \"", columns)}\") VALUES ({string.Join(", ", patterns)})" + (returnId ? " RETURNING id" : "");
|
|
||||||
|
|
||||||
NpgsqlCommand cmd = Database.GetCommand(dml);
|
|
||||||
foreach (var kvp in data)
|
|
||||||
{
|
|
||||||
cmd.Parameters.AddWithValue(":" + kvp.Key.ToUpper(), kvp.Value ?? DBNull.Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
Console.WriteLine(cmd.CommandText);
|
|
||||||
return cmd;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int Insert(string table, Dictionary<string, object?> data)
|
|
||||||
{
|
|
||||||
var cmd = PrepareInsert(table, data, true);
|
|
||||||
return (int)(cmd.ExecuteScalar() ?? throw new Exception("Not a number"));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void InsertBlind(string table, Dictionary<string, object?> data)
|
|
||||||
{
|
|
||||||
var cmd = PrepareInsert(table, data, false);
|
|
||||||
cmd.ExecuteNonQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static object? JsonGet(JObject root, string path)
|
public readonly static DataBuilderHelper Instance = new();
|
||||||
{
|
|
||||||
var token = root.SelectToken(path);
|
|
||||||
|
|
||||||
if (token == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (token.Type == JTokenType.String)
|
|
||||||
{
|
|
||||||
return token.ToString();
|
|
||||||
}
|
|
||||||
else if (token.Type == JTokenType.Integer)
|
|
||||||
{
|
|
||||||
return token.ToObject<int>();
|
|
||||||
}
|
|
||||||
else if (token.Type == JTokenType.Float)
|
|
||||||
{
|
|
||||||
return token.ToObject<float>();
|
|
||||||
}
|
|
||||||
else if (token.Type == JTokenType.Boolean)
|
|
||||||
{
|
|
||||||
return token.ToObject<bool>();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return token.ToString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static DataBuilderHelper Instance = new();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -1,9 +1,10 @@
|
|||||||
namespace Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.DataBuilder
|
namespace Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.DataBuilder
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class)]
|
[AttributeUsage(AttributeTargets.Class)]
|
||||||
internal class Pf2eTypeProcessor(string type) : Attribute
|
internal class Pf2eTypeProcessor(string type, int priority = 0) : Attribute
|
||||||
{
|
{
|
||||||
public readonly string Type = type;
|
public readonly string Type = type;
|
||||||
|
|
||||||
|
public readonly int Priority = priority;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-21
@@ -1,39 +1,33 @@
|
|||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using Pf2eDataScrapper.Model;
|
using Pf2eDataScrapper.Model;
|
||||||
using Pf2eDataScrapper.Model.Enum;
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
using Slugify;
|
|
||||||
|
|
||||||
namespace Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.DataBuilder.Processors
|
namespace Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.DataBuilder.Processors
|
||||||
{
|
{
|
||||||
[Pf2eTypeProcessor("Item.condition")]
|
[Pf2eTypeProcessor("Item.condition")]
|
||||||
internal class ConditionProcessor(JObject input) : AbstractProcessor(input)
|
internal class ConditionProcessor(JObject input) : AbstractProcessor(input)
|
||||||
{
|
{
|
||||||
|
public override EntityType Type => EntityType.Condition;
|
||||||
|
|
||||||
|
public override Condition Object { get; } = new();
|
||||||
|
|
||||||
public override void Process()
|
public override void Process()
|
||||||
{
|
{
|
||||||
|
base.Process();
|
||||||
|
|
||||||
JObject extra = new()
|
JObject extra = new()
|
||||||
{
|
|
||||||
{ "duration", Input.SelectToken("duration") },
|
|
||||||
{ "overrides", Input.SelectToken("overrides") },
|
|
||||||
{ "references", Input.SelectToken("references") },
|
|
||||||
{ "value", Input.SelectToken("value") }
|
|
||||||
};
|
|
||||||
|
|
||||||
Condition condition = new()
|
|
||||||
{
|
{
|
||||||
Name = GetRequired<string>("name"),
|
{ "duration", Input.SelectToken("system.duration") },
|
||||||
Img = GetRequired<string>("img"),
|
{ "overrides", Input.SelectToken("system.overrides") },
|
||||||
Description = GetRequired<string>("system.description.value"),
|
{ "references", Input.SelectToken("system.references") },
|
||||||
DescriptionGm = GetOptional<string>("system.description.gm"),
|
{ "value", Input.SelectToken("system.value") }
|
||||||
Type = EntityType.Condition,
|
|
||||||
IsTranslated = false,
|
|
||||||
IsChecked = false,
|
|
||||||
|
|
||||||
// Group = GetOptional<string>("system.group");
|
|
||||||
Extra = extra.ToString(Newtonsoft.Json.Formatting.Indented)
|
|
||||||
};
|
};
|
||||||
condition.Slug = new SlugHelper().GenerateSlug(condition.Name);
|
|
||||||
|
|
||||||
Context.Conditions.Add(condition);
|
Object.Extra = extra.ToString(Newtonsoft.Json.Formatting.Indented);
|
||||||
|
|
||||||
|
Object.Group = EnumOptional<ConditionGroup>("system.group");
|
||||||
|
|
||||||
|
Context.Conditions.Add(Object);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,21 +6,9 @@ public partial class Action : IEntity
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; } = null!;
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
public string Img { get; set; } = null!;
|
// TODO ActionType
|
||||||
|
|
||||||
public EntityType Type { get; set; } = EntityType.Action;
|
|
||||||
|
|
||||||
public string Description { get; set; } = null!;
|
|
||||||
|
|
||||||
public string? DescriptionGm { get; set; }
|
|
||||||
|
|
||||||
public string Slug { get; set; } = null!;
|
|
||||||
|
|
||||||
public bool? IsTranslated { get; set; }
|
|
||||||
|
|
||||||
public bool? IsChecked { get; set; }
|
|
||||||
|
|
||||||
public int? Actions { get; set; }
|
public int? Actions { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -6,21 +6,9 @@ public partial class Ancestry : IEntity
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; } = null!;
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
public string Img { get; set; } = null!;
|
// TODO Size Vision
|
||||||
|
|
||||||
public EntityType Type { get; set; } = EntityType.Ancestry;
|
|
||||||
|
|
||||||
public string Description { get; set; } = null!;
|
|
||||||
|
|
||||||
public string? DescriptionGm { get; set; }
|
|
||||||
|
|
||||||
public string Slug { get; set; } = null!;
|
|
||||||
|
|
||||||
public bool? IsTranslated { get; set; }
|
|
||||||
|
|
||||||
public bool? IsChecked { get; set; }
|
|
||||||
|
|
||||||
public int Hp { get; set; }
|
public int Hp { get; set; }
|
||||||
|
|
||||||
@@ -28,11 +16,11 @@ public partial class Ancestry : IEntity
|
|||||||
|
|
||||||
public int Speed { get; set; }
|
public int Speed { get; set; }
|
||||||
|
|
||||||
public virtual ICollection<AncestryBoost> AncestryBoosts { get; set; } = new List<AncestryBoost>();
|
public virtual ICollection<AncestryBoost> AncestryBoosts { get; set; } = [];
|
||||||
|
|
||||||
public virtual ICollection<AncestryItem> AncestryItems { get; set; } = new List<AncestryItem>();
|
public virtual ICollection<AncestryItem> AncestryItems { get; set; } = [];
|
||||||
|
|
||||||
public virtual ICollection<AncestryLanguage> AncestryLanguages { get; set; } = new List<AncestryLanguage>();
|
public virtual ICollection<AncestryLanguage> AncestryLanguages { get; set; } = [];
|
||||||
|
|
||||||
public virtual ICollection<Heritage> Heritages { get; set; } = new List<Heritage>();
|
public virtual ICollection<Heritage> Heritages { get; set; } = [];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,21 +6,7 @@ public partial class Background : IEntity
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; } = null!;
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
public string Img { get; set; } = null!;
|
|
||||||
|
|
||||||
public EntityType Type { get; set; } = EntityType.Background;
|
|
||||||
|
|
||||||
public string Description { get; set; } = null!;
|
|
||||||
|
|
||||||
public string? DescriptionGm { get; set; }
|
|
||||||
|
|
||||||
public string Slug { get; set; } = null!;
|
|
||||||
|
|
||||||
public bool? IsTranslated { get; set; }
|
|
||||||
|
|
||||||
public bool? IsChecked { get; set; }
|
|
||||||
|
|
||||||
public virtual ICollection<BackgroundBoost> BackgroundBoosts { get; set; } = new List<BackgroundBoost>();
|
public virtual ICollection<BackgroundBoost> BackgroundBoosts { get; set; } = new List<BackgroundBoost>();
|
||||||
|
|
||||||
|
|||||||
@@ -6,21 +6,9 @@ public partial class CampaignFeature : IEntity
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; } = null!;
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
public string Img { get; set; } = null!;
|
// TODO ActionType Category
|
||||||
|
|
||||||
public EntityType Type { get; set; } = EntityType.CampaignFeature;
|
|
||||||
|
|
||||||
public string Description { get; set; } = null!;
|
|
||||||
|
|
||||||
public string? DescriptionGm { get; set; }
|
|
||||||
|
|
||||||
public string Slug { get; set; } = null!;
|
|
||||||
|
|
||||||
public bool? IsTranslated { get; set; }
|
|
||||||
|
|
||||||
public bool? IsChecked { get; set; }
|
|
||||||
|
|
||||||
public int? Level { get; set; }
|
public int? Level { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -6,21 +6,7 @@ public partial class Class : IEntity
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; } = null!;
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
public string Img { get; set; } = null!;
|
|
||||||
|
|
||||||
public EntityType Type { get; set; } = EntityType.Class;
|
|
||||||
|
|
||||||
public string Description { get; set; } = null!;
|
|
||||||
|
|
||||||
public string? DescriptionGm { get; set; }
|
|
||||||
|
|
||||||
public string Slug { get; set; } = null!;
|
|
||||||
|
|
||||||
public bool? IsTranslated { get; set; }
|
|
||||||
|
|
||||||
public bool? IsChecked { get; set; }
|
|
||||||
|
|
||||||
public int Hp { get; set; }
|
public int Hp { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -4,25 +4,11 @@ namespace Pf2eDataScrapper.Model;
|
|||||||
|
|
||||||
public partial class Condition : IEntity
|
public partial class Condition : IEntity
|
||||||
{
|
{
|
||||||
public int Id { get; set; } = -1;
|
public int Id { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; } = null!;
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
public string Img { get; set; } = null!;
|
public ConditionGroup? Group { get; set; }
|
||||||
|
|
||||||
public EntityType Type { get; set; } = EntityType.Condition;
|
|
||||||
|
|
||||||
public string Description { get; set; } = null!;
|
|
||||||
|
|
||||||
public string? DescriptionGm { get; set; }
|
|
||||||
|
|
||||||
public string Slug { get; set; } = null!;
|
|
||||||
|
|
||||||
public bool? IsTranslated { get; set; }
|
|
||||||
|
|
||||||
public bool? IsChecked { get; set; }
|
|
||||||
|
|
||||||
public ConditionGroup Group { get; set; }
|
|
||||||
|
|
||||||
public string? Extra { get; set; }
|
public string? Extra { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,21 +6,9 @@ public partial class Deity : IEntity
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; } = null!;
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
public string Img { get; set; } = null!;
|
// TODO Category Font Sanctification
|
||||||
|
|
||||||
public EntityType Type { get; set; } = EntityType.Deity;
|
|
||||||
|
|
||||||
public string Description { get; set; } = null!;
|
|
||||||
|
|
||||||
public string? DescriptionGm { get; set; }
|
|
||||||
|
|
||||||
public string Slug { get; set; } = null!;
|
|
||||||
|
|
||||||
public bool? IsTranslated { get; set; }
|
|
||||||
|
|
||||||
public bool? IsChecked { get; set; }
|
|
||||||
|
|
||||||
public bool SanctificationMust { get; set; }
|
public bool SanctificationMust { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,17 @@
|
|||||||
namespace Pf2eDataScrapper.Model;
|
using Pf2eDataScrapper.Model.Enum;
|
||||||
|
|
||||||
public partial class Entity : IEntity
|
namespace Pf2eDataScrapper.Model;
|
||||||
|
|
||||||
|
public class Entity
|
||||||
{
|
{
|
||||||
public int Id { get; set; } = -1;
|
public int Id { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; } = null!;
|
public string Name { get; set; } = null!;
|
||||||
|
|
||||||
public string Img { get; set; } = null!;
|
public string Img { get; set; } = null!;
|
||||||
|
|
||||||
|
public EntityType Type { get; set; }
|
||||||
|
|
||||||
public string Description { get; set; } = null!;
|
public string Description { get; set; } = null!;
|
||||||
|
|
||||||
public string? DescriptionGm { get; set; }
|
public string? DescriptionGm { get; set; }
|
||||||
@@ -18,5 +22,5 @@ public partial class Entity : IEntity
|
|||||||
|
|
||||||
public bool? IsChecked { get; set; }
|
public bool? IsChecked { get; set; }
|
||||||
|
|
||||||
public virtual ICollection<Trait> Traits { get; set; } = new List<Trait>();
|
public virtual ICollection<Trait> Traits { get; set; } = [];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,21 +6,9 @@ public partial class Feat : IEntity
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; } = null!;
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
public string Img { get; set; } = null!;
|
// TODO ActionType Category
|
||||||
|
|
||||||
public EntityType Type { get; set; } = EntityType.Feat;
|
|
||||||
|
|
||||||
public string Description { get; set; } = null!;
|
|
||||||
|
|
||||||
public string? DescriptionGm { get; set; }
|
|
||||||
|
|
||||||
public string Slug { get; set; } = null!;
|
|
||||||
|
|
||||||
public bool? IsTranslated { get; set; }
|
|
||||||
|
|
||||||
public bool? IsChecked { get; set; }
|
|
||||||
|
|
||||||
public int? Actions { get; set; }
|
public int? Actions { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -6,21 +6,7 @@ public partial class Heritage : IEntity
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; } = null!;
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
public string Img { get; set; } = null!;
|
|
||||||
|
|
||||||
public EntityType Type { get; set; } = EntityType.Heritage;
|
|
||||||
|
|
||||||
public string Description { get; set; } = null!;
|
|
||||||
|
|
||||||
public string? DescriptionGm { get; set; }
|
|
||||||
|
|
||||||
public string Slug { get; set; } = null!;
|
|
||||||
|
|
||||||
public bool? IsTranslated { get; set; }
|
|
||||||
|
|
||||||
public bool? IsChecked { get; set; }
|
|
||||||
|
|
||||||
public int? AncestryId { get; set; }
|
public int? AncestryId { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -4,18 +4,7 @@
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; }
|
public Entity Entity { get; set; }
|
||||||
|
|
||||||
public string Img { get; set; }
|
|
||||||
|
|
||||||
public string Description { get; set; }
|
|
||||||
|
|
||||||
public string? DescriptionGm { get; set; }
|
|
||||||
|
|
||||||
public string Slug { get; set; }
|
|
||||||
|
|
||||||
public bool? IsTranslated { get; set; }
|
|
||||||
|
|
||||||
public bool? IsChecked { get; set; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,21 +6,7 @@ public partial class Spell : IEntity
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; } = null!;
|
public Entity Entity { get; set; } = null!;
|
||||||
|
|
||||||
public string Img { get; set; } = null!;
|
|
||||||
|
|
||||||
public EntityType Type { get; set; } = EntityType.Spell;
|
|
||||||
|
|
||||||
public string Description { get; set; } = null!;
|
|
||||||
|
|
||||||
public string? DescriptionGm { get; set; }
|
|
||||||
|
|
||||||
public string Slug { get; set; } = null!;
|
|
||||||
|
|
||||||
public bool? IsTranslated { get; set; }
|
|
||||||
|
|
||||||
public bool? IsChecked { get; set; }
|
|
||||||
|
|
||||||
public int Level { get; set; }
|
public int Level { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ public partial class Trait
|
|||||||
|
|
||||||
public string Name { get; set; } = null!;
|
public string Name { get; set; } = null!;
|
||||||
|
|
||||||
public string Description { get; set; } = null!;
|
public string Slug { get; set; } = null!;
|
||||||
|
|
||||||
public virtual ICollection<Entity> Entities { get; set; } = new List<Entity>();
|
public string Description { get; set; } = null!;
|
||||||
}
|
}
|
||||||
|
|||||||
+329
-458
@@ -18,6 +18,8 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#region DbSets
|
||||||
|
|
||||||
public virtual DbSet<Model.Action> Actions { get; set; }
|
public virtual DbSet<Model.Action> Actions { get; set; }
|
||||||
|
|
||||||
public virtual DbSet<Ancestry> Ancestries { get; set; }
|
public virtual DbSet<Ancestry> Ancestries { get; set; }
|
||||||
@@ -100,6 +102,7 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
|
|
||||||
public virtual DbSet<Trait> Traits { get; set; }
|
public virtual DbSet<Trait> Traits { get; set; }
|
||||||
|
|
||||||
|
#endregion
|
||||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||||
{
|
{
|
||||||
optionsBuilder.UseNpgsql(EnvSettings.DatabaseConnection,
|
optionsBuilder.UseNpgsql(EnvSettings.DatabaseConnection,
|
||||||
@@ -160,15 +163,11 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
{
|
{
|
||||||
modelBuilder.UseIdentityByDefaultColumns();
|
modelBuilder.UseIdentityByDefaultColumns();
|
||||||
|
|
||||||
modelBuilder.HasSequence<int>("entity_sequence");
|
|
||||||
|
|
||||||
modelBuilder
|
modelBuilder
|
||||||
.HasPostgresEnum<EntityType>("entity_type")
|
.HasPostgresEnum<EntityType>("entity_type")
|
||||||
.HasPostgresEnum<ConditionGroup>("condition_group")
|
.HasPostgresEnum<ConditionGroup>("condition_group")
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
modelBuilder
|
modelBuilder
|
||||||
.HasPostgresEnum("action_category", new[] { "offensive", "defensive", "interaction", "familiar" })
|
.HasPostgresEnum("action_category", new[] { "offensive", "defensive", "interaction", "familiar" })
|
||||||
.HasPostgresEnum("action_type", new[] { "action", "free", "reaction", "passive" })
|
.HasPostgresEnum("action_type", new[] { "action", "free", "reaction", "passive" })
|
||||||
@@ -189,23 +188,18 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
.HasPostgresEnum("spell_damage_kinds", new[] { "damage", "healing", "any" })
|
.HasPostgresEnum("spell_damage_kinds", new[] { "damage", "healing", "any" })
|
||||||
.HasPostgresEnum("trait_type", new[] { "regular", "tradition" });
|
.HasPostgresEnum("trait_type", new[] { "regular", "tradition" });
|
||||||
|
|
||||||
modelBuilder.Entity<Model.Action>(entity =>
|
|
||||||
|
modelBuilder.Entity<Entity>(entity =>
|
||||||
{
|
{
|
||||||
entity.HasKey(e => e.Id).HasName("action_pkey");
|
entity.HasKey(e => e.Id).HasName("entity_pkey");
|
||||||
|
|
||||||
entity.ToTable("action");
|
entity.ToTable("entity");
|
||||||
|
|
||||||
entity.Property(e => e.Id)
|
entity.Property(e => e.Id).HasColumnName("id");
|
||||||
.ValueGeneratedNever()
|
|
||||||
.HasColumnName("id");
|
|
||||||
entity.Property(e => e.Type)
|
|
||||||
.HasConversion(GetEnumConverter<EntityType>())
|
|
||||||
.HasColumnName("type");
|
|
||||||
entity.Property(e => e.Actions).HasColumnName("actions");
|
|
||||||
entity.Property(e => e.DeathNote).HasColumnName("death_note");
|
|
||||||
entity.Property(e => e.Description).HasColumnName("description");
|
entity.Property(e => e.Description).HasColumnName("description");
|
||||||
entity.Property(e => e.DescriptionGm).HasColumnName("description_gm");
|
entity.Property(e => e.DescriptionGm).HasColumnName("description_gm");
|
||||||
entity.Property(e => e.Extra).HasColumnName("extra");
|
entity.Property(e => e.Type)
|
||||||
|
.HasColumnName("type");
|
||||||
entity.Property(e => e.Img)
|
entity.Property(e => e.Img)
|
||||||
.HasMaxLength(150)
|
.HasMaxLength(150)
|
||||||
.HasColumnName("img");
|
.HasColumnName("img");
|
||||||
@@ -221,8 +215,262 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
entity.Property(e => e.Slug)
|
entity.Property(e => e.Slug)
|
||||||
.HasMaxLength(150)
|
.HasMaxLength(150)
|
||||||
.HasColumnName("slug");
|
.HasColumnName("slug");
|
||||||
|
|
||||||
|
entity.HasMany(d => d.Traits).WithMany()
|
||||||
|
.UsingEntity<Dictionary<string, object>>(
|
||||||
|
"EntityTrait",
|
||||||
|
r => r.HasOne<Trait>().WithMany()
|
||||||
|
.HasForeignKey("TraitId")
|
||||||
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
|
.HasConstraintName("entity_traits_trait_id_fkey"),
|
||||||
|
l => l.HasOne<Entity>().WithMany()
|
||||||
|
.HasForeignKey("EntityId")
|
||||||
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
|
.HasConstraintName("entity_traits_entity_id_fkey"),
|
||||||
|
j =>
|
||||||
|
{
|
||||||
|
j.HasKey("EntityId", "TraitId").HasName("entity_traits_pkey");
|
||||||
|
j.ToTable("entity_traits");
|
||||||
|
j.IndexerProperty<int>("EntityId").HasColumnName("entity_id");
|
||||||
|
j.IndexerProperty<int>("TraitId").HasColumnName("trait_id");
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity<EntityAlias>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasKey(e => e.Id).HasName("entity_aliases_pkey");
|
||||||
|
|
||||||
|
entity.ToTable("entity_aliases");
|
||||||
|
|
||||||
|
entity.Property(e => e.Id).HasColumnName("id");
|
||||||
|
entity.Property(e => e.Alias)
|
||||||
|
.HasColumnType("character varying")
|
||||||
|
.HasColumnName("alias");
|
||||||
|
entity.Property(e => e.EntityId).HasColumnName("entity_id");
|
||||||
|
|
||||||
|
entity.HasOne(d => d.Entity).WithMany()
|
||||||
|
.HasForeignKey(d => d.EntityId)
|
||||||
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
|
.HasConstraintName("entity_aliases_entity_id_fkey");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity<EntityExternal>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasKey(e => new { e.EntityId, e.TargetId }).HasName("entity_external_pkey");
|
||||||
|
|
||||||
|
entity.ToTable("entity_external");
|
||||||
|
|
||||||
|
entity.Property(e => e.EntityId).HasColumnName("entity_id");
|
||||||
|
entity.Property(e => e.TargetId).HasColumnName("target_id");
|
||||||
|
entity.Property(e => e.Md5)
|
||||||
|
.HasColumnType("character varying")
|
||||||
|
.HasColumnName("md5");
|
||||||
|
entity.Property(e => e.Path)
|
||||||
|
.HasColumnType("character varying")
|
||||||
|
.HasColumnName("path");
|
||||||
|
entity.Property(e => e.Suffix)
|
||||||
|
.HasDefaultValueSql("''::character varying")
|
||||||
|
.HasColumnType("character varying")
|
||||||
|
.HasColumnName("suffix");
|
||||||
|
|
||||||
|
entity.HasOne(d => d.Entity).WithMany()
|
||||||
|
.HasForeignKey(d => d.EntityId)
|
||||||
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
|
.HasConstraintName("entity_external_entity_id_fkey");
|
||||||
|
|
||||||
|
entity.HasOne(d => d.Target).WithMany()
|
||||||
|
.HasForeignKey(d => d.TargetId)
|
||||||
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
|
.HasConstraintName("entity_external_target_id_fkey");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity<EntityKeyword>(entity =>
|
||||||
|
{
|
||||||
|
entity
|
||||||
|
.HasNoKey()
|
||||||
|
.ToTable("entity_keywords");
|
||||||
|
|
||||||
|
entity.Property(e => e.EntityId).HasColumnName("entity_id");
|
||||||
|
entity.Property(e => e.KeywordId).HasColumnName("keyword_id");
|
||||||
|
|
||||||
|
entity.HasOne(d => d.Entity).WithMany()
|
||||||
|
.HasForeignKey(d => d.EntityId)
|
||||||
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
|
.HasConstraintName("entity_keywords_entity_id_fkey");
|
||||||
|
|
||||||
|
entity.HasOne(d => d.Keyword).WithMany()
|
||||||
|
.HasForeignKey(d => d.KeywordId)
|
||||||
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
|
.HasConstraintName("entity_keywords_keyword_id_fkey");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity<EntitySource>(entity =>
|
||||||
|
{
|
||||||
|
entity
|
||||||
|
.HasNoKey()
|
||||||
|
.ToTable("entity_sources");
|
||||||
|
|
||||||
|
entity.Property(e => e.EntityId).HasColumnName("entity_id");
|
||||||
|
entity.Property(e => e.IsRemaster).HasColumnName("is_remaster");
|
||||||
|
entity.Property(e => e.SourceId).HasColumnName("source_id");
|
||||||
|
entity.Property(e => e.Suffix)
|
||||||
|
.HasDefaultValueSql("''::character varying")
|
||||||
|
.HasColumnType("character varying")
|
||||||
|
.HasColumnName("suffix");
|
||||||
|
|
||||||
|
entity.HasOne(d => d.Entity).WithMany()
|
||||||
|
.HasForeignKey(d => d.EntityId)
|
||||||
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
|
.HasConstraintName("entity_sources_entity_id_fkey");
|
||||||
|
|
||||||
|
entity.HasOne(d => d.Source).WithMany()
|
||||||
|
.HasForeignKey(d => d.SourceId)
|
||||||
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
|
.HasConstraintName("entity_sources_source_id_fkey");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity<ExternalTarget>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasKey(e => e.Id).HasName("external_target_pkey");
|
||||||
|
|
||||||
|
entity.ToTable("external_target");
|
||||||
|
|
||||||
|
entity.Property(e => e.Id).HasColumnName("id");
|
||||||
|
entity.Property(e => e.Icon)
|
||||||
|
.HasColumnType("character varying")
|
||||||
|
.HasColumnName("icon");
|
||||||
|
entity.Property(e => e.Name)
|
||||||
|
.HasColumnType("character varying")
|
||||||
|
.HasColumnName("name");
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
modelBuilder.Entity<Frequency>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasKey(e => e.Id).HasName("frequency_pkey");
|
||||||
|
|
||||||
|
entity.ToTable("frequency");
|
||||||
|
|
||||||
|
entity.Property(e => e.Id)
|
||||||
|
.ValueGeneratedNever()
|
||||||
|
.HasColumnName("id");
|
||||||
|
entity.Property(e => e.Max).HasColumnName("max");
|
||||||
|
entity.Property(e => e.Per).HasColumnName("per");
|
||||||
|
entity.Property(e => e.Value).HasColumnName("value");
|
||||||
|
|
||||||
|
entity.HasOne(d => d.IdNavigation).WithOne()
|
||||||
|
.HasForeignKey<Frequency>(d => d.Id)
|
||||||
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
|
.HasConstraintName("frequency_id_fkey");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity<Keyword>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasKey(e => e.Id).HasName("keyword_pkey");
|
||||||
|
|
||||||
|
entity.ToTable("keyword");
|
||||||
|
|
||||||
|
entity.Property(e => e.Id).HasColumnName("id");
|
||||||
|
entity.Property(e => e.Slug)
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnName("slug");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity<KeywordAlias>(entity =>
|
||||||
|
{
|
||||||
|
entity
|
||||||
|
.HasNoKey()
|
||||||
|
.ToTable("keyword_aliases");
|
||||||
|
|
||||||
|
entity.Property(e => e.KeywordId).HasColumnName("keyword_id");
|
||||||
|
entity.Property(e => e.Value)
|
||||||
|
.HasColumnType("character varying")
|
||||||
|
.HasColumnName("value");
|
||||||
|
|
||||||
|
entity.HasOne(d => d.Keyword).WithMany()
|
||||||
|
.HasForeignKey(d => d.KeywordId)
|
||||||
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
|
.HasConstraintName("keyword_aliases_keyword_id_fkey");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity<Language>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasKey(e => e.Id).HasName("language_pkey");
|
||||||
|
|
||||||
|
entity.ToTable("language");
|
||||||
|
|
||||||
|
entity.Property(e => e.Id).HasColumnName("id");
|
||||||
|
entity.Property(e => e.Name)
|
||||||
|
.HasColumnType("character varying")
|
||||||
|
.HasColumnName("name");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity<Source>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasKey(e => e.Id).HasName("source_pkey");
|
||||||
|
|
||||||
|
entity.ToTable("source");
|
||||||
|
|
||||||
|
entity.Property(e => e.Id).HasColumnName("id");
|
||||||
|
entity.Property(e => e.Name)
|
||||||
|
.HasColumnType("character varying")
|
||||||
|
.HasColumnName("name");
|
||||||
|
entity.Property(e => e.Url)
|
||||||
|
.HasColumnType("character varying")
|
||||||
|
.HasColumnName("url");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity<Training>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasKey(e => e.Id).HasName("trainings_pkey");
|
||||||
|
|
||||||
|
entity.ToTable("trainings");
|
||||||
|
|
||||||
|
entity.Property(e => e.Id).HasColumnName("id");
|
||||||
|
entity.Property(e => e.Key)
|
||||||
|
.HasColumnType("character varying")
|
||||||
|
.HasColumnName("key");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity<Trait>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasKey(e => e.Id).HasName("trait_pkey");
|
||||||
|
|
||||||
|
entity.ToTable("trait");
|
||||||
|
|
||||||
|
entity.Property(e => e.Id).HasColumnName("id");
|
||||||
|
entity.Property(e => e.Description).HasColumnName("description");
|
||||||
|
entity.Property(e => e.Name)
|
||||||
|
.HasColumnType("character varying")
|
||||||
|
.HasColumnName("name");
|
||||||
|
entity.Property(e => e.Slug)
|
||||||
|
.HasColumnType("character varying")
|
||||||
|
.HasColumnName("slug");
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
modelBuilder.Entity<Model.Action>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasKey(e => e.Id).HasName("action_pkey");
|
||||||
|
|
||||||
|
entity.ToTable("action");
|
||||||
|
|
||||||
|
entity.Property(e => e.Id)
|
||||||
|
.ValueGeneratedNever()
|
||||||
|
.HasColumnName("id");
|
||||||
|
entity.HasOne(e => e.Entity).WithOne()
|
||||||
|
.HasForeignKey<Model.Action>(e => e.Id)
|
||||||
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
|
.HasConstraintName("action_id_fkey");
|
||||||
|
entity.Property(e => e.Actions).HasColumnName("actions");
|
||||||
|
entity.Property(e => e.DeathNote).HasColumnName("death_note");
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
modelBuilder.Entity<Ancestry>(entity =>
|
modelBuilder.Entity<Ancestry>(entity =>
|
||||||
{
|
{
|
||||||
entity.HasKey(e => e.Id).HasName("ancestry_pkey");
|
entity.HasKey(e => e.Id).HasName("ancestry_pkey");
|
||||||
@@ -232,28 +480,12 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
entity.Property(e => e.Id)
|
entity.Property(e => e.Id)
|
||||||
.ValueGeneratedNever()
|
.ValueGeneratedNever()
|
||||||
.HasColumnName("id");
|
.HasColumnName("id");
|
||||||
entity.Property(e => e.Type)
|
entity.HasOne(e => e.Entity).WithOne()
|
||||||
.HasConversion(GetEnumConverter<EntityType>())
|
.HasForeignKey<Ancestry>(e => e.Id)
|
||||||
.HasColumnName("type");
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
entity.Property(e => e.Description).HasColumnName("description");
|
.HasConstraintName("ancestry_id_fkey");
|
||||||
entity.Property(e => e.DescriptionGm).HasColumnName("description_gm");
|
|
||||||
entity.Property(e => e.Hp).HasColumnName("hp");
|
entity.Property(e => e.Hp).HasColumnName("hp");
|
||||||
entity.Property(e => e.Img)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("img");
|
|
||||||
entity.Property(e => e.IsChecked)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_checked");
|
|
||||||
entity.Property(e => e.IsTranslated)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_translated");
|
|
||||||
entity.Property(e => e.Name)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("name");
|
|
||||||
entity.Property(e => e.Reach).HasColumnName("reach");
|
entity.Property(e => e.Reach).HasColumnName("reach");
|
||||||
entity.Property(e => e.Slug)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("slug");
|
|
||||||
entity.Property(e => e.Speed).HasColumnName("speed");
|
entity.Property(e => e.Speed).HasColumnName("speed");
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -293,7 +525,7 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
.HasConstraintName("ancestry_items_ancestry_id_fkey");
|
.HasConstraintName("ancestry_items_ancestry_id_fkey");
|
||||||
|
|
||||||
entity.HasOne(d => d.Item).WithMany(p => p.AncestryItems)
|
entity.HasOne(d => d.Item).WithMany()
|
||||||
.HasForeignKey(d => d.ItemId)
|
.HasForeignKey(d => d.ItemId)
|
||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
.HasConstraintName("ancestry_items_item_id_fkey");
|
.HasConstraintName("ancestry_items_item_id_fkey");
|
||||||
@@ -320,6 +552,8 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
.HasConstraintName("ancestry_languages_language_id_fkey");
|
.HasConstraintName("ancestry_languages_language_id_fkey");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
modelBuilder.Entity<Background>(entity =>
|
modelBuilder.Entity<Background>(entity =>
|
||||||
{
|
{
|
||||||
entity.HasKey(e => e.Id).HasName("background_pkey");
|
entity.HasKey(e => e.Id).HasName("background_pkey");
|
||||||
@@ -329,26 +563,10 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
entity.Property(e => e.Id)
|
entity.Property(e => e.Id)
|
||||||
.ValueGeneratedNever()
|
.ValueGeneratedNever()
|
||||||
.HasColumnName("id");
|
.HasColumnName("id");
|
||||||
entity.Property(e => e.Type)
|
entity.HasOne(e => e.Entity).WithOne()
|
||||||
.HasConversion(GetEnumConverter<EntityType>())
|
.HasForeignKey<Background>(e => e.Id)
|
||||||
.HasColumnName("type");
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
entity.Property(e => e.Description).HasColumnName("description");
|
.HasConstraintName("background_id_fkey");
|
||||||
entity.Property(e => e.DescriptionGm).HasColumnName("description_gm");
|
|
||||||
entity.Property(e => e.Img)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("img");
|
|
||||||
entity.Property(e => e.IsChecked)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_checked");
|
|
||||||
entity.Property(e => e.IsTranslated)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_translated");
|
|
||||||
entity.Property(e => e.Name)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("name");
|
|
||||||
entity.Property(e => e.Slug)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("slug");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity<BackgroundBoost>(entity =>
|
modelBuilder.Entity<BackgroundBoost>(entity =>
|
||||||
@@ -384,7 +602,7 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
.HasConstraintName("background_items_background_id_fkey");
|
.HasConstraintName("background_items_background_id_fkey");
|
||||||
|
|
||||||
entity.HasOne(d => d.Entity).WithMany(p => p.BackgroundItems)
|
entity.HasOne(d => d.Entity).WithMany()
|
||||||
.HasForeignKey(d => d.EntityId)
|
.HasForeignKey(d => d.EntityId)
|
||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
.HasConstraintName("background_items_entity_id_fkey");
|
.HasConstraintName("background_items_entity_id_fkey");
|
||||||
@@ -409,6 +627,8 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
.HasConstraintName("background_skills_background_id_fkey");
|
.HasConstraintName("background_skills_background_id_fkey");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
modelBuilder.Entity<CampaignFeature>(entity =>
|
modelBuilder.Entity<CampaignFeature>(entity =>
|
||||||
{
|
{
|
||||||
entity.HasKey(e => e.Id).HasName("campaign_feature_pkey");
|
entity.HasKey(e => e.Id).HasName("campaign_feature_pkey");
|
||||||
@@ -418,31 +638,21 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
entity.Property(e => e.Id)
|
entity.Property(e => e.Id)
|
||||||
.ValueGeneratedNever()
|
.ValueGeneratedNever()
|
||||||
.HasColumnName("id");
|
.HasColumnName("id");
|
||||||
entity.Property(e => e.Actions).HasColumnName("actions");
|
entity.HasOne(e => e.Entity).WithOne()
|
||||||
entity.Property(e => e.Description).HasColumnName("description");
|
.HasForeignKey<CampaignFeature>(e => e.Id)
|
||||||
entity.Property(e => e.DescriptionGm).HasColumnName("description_gm");
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
entity.Property(e => e.Extra).HasColumnName("extra");
|
.HasConstraintName("campaign_feature_id_fkey");
|
||||||
entity.Property(e => e.Img)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("img");
|
|
||||||
entity.Property(e => e.IsChecked)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_checked");
|
|
||||||
entity.Property(e => e.IsTranslated)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_translated");
|
|
||||||
entity.Property(e => e.Level).HasColumnName("level");
|
entity.Property(e => e.Level).HasColumnName("level");
|
||||||
entity.Property(e => e.Name)
|
entity.Property(e => e.Actions).HasColumnName("actions");
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("name");
|
|
||||||
entity.Property(e => e.Prerequisites)
|
entity.Property(e => e.Prerequisites)
|
||||||
.HasColumnType("character varying")
|
.HasColumnType("character varying")
|
||||||
.HasColumnName("prerequisites");
|
.HasColumnName("prerequisites");
|
||||||
entity.Property(e => e.Slug)
|
entity.Property(e => e.Extra).HasColumnName("extra");
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("slug");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
modelBuilder.Entity<Class>(entity =>
|
modelBuilder.Entity<Class>(entity =>
|
||||||
{
|
{
|
||||||
entity.HasKey(e => e.Id).HasName("class_pkey");
|
entity.HasKey(e => e.Id).HasName("class_pkey");
|
||||||
@@ -452,30 +662,15 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
entity.Property(e => e.Id)
|
entity.Property(e => e.Id)
|
||||||
.ValueGeneratedNever()
|
.ValueGeneratedNever()
|
||||||
.HasColumnName("id");
|
.HasColumnName("id");
|
||||||
entity.Property(e => e.Type)
|
entity.HasOne(e => e.Entity).WithOne()
|
||||||
.HasConversion(GetEnumConverter<EntityType>())
|
.HasForeignKey<Class>(e => e.Id)
|
||||||
.HasColumnName("type");
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
entity.Property(e => e.AdditionalTrainedSkills).HasColumnName("additionalTrainedSkills");
|
.HasConstraintName("class_id_fkey");
|
||||||
entity.Property(e => e.Description).HasColumnName("description");
|
|
||||||
entity.Property(e => e.DescriptionGm).HasColumnName("description_gm");
|
|
||||||
entity.Property(e => e.Hp).HasColumnName("hp");
|
entity.Property(e => e.Hp).HasColumnName("hp");
|
||||||
entity.Property(e => e.Img)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("img");
|
|
||||||
entity.Property(e => e.IsChecked)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_checked");
|
|
||||||
entity.Property(e => e.IsTranslated)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_translated");
|
|
||||||
entity.Property(e => e.Name)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("name");
|
|
||||||
entity.Property(e => e.Perception).HasColumnName("perception");
|
entity.Property(e => e.Perception).HasColumnName("perception");
|
||||||
entity.Property(e => e.Slug)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("slug");
|
|
||||||
entity.Property(e => e.Spellcasting).HasColumnName("spellcasting");
|
entity.Property(e => e.Spellcasting).HasColumnName("spellcasting");
|
||||||
|
entity.Property(e => e.AdditionalTrainedSkills).HasColumnName("additionalTrainedSkills");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity<ClassKeyAbility>(entity =>
|
modelBuilder.Entity<ClassKeyAbility>(entity =>
|
||||||
@@ -512,7 +707,7 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
.HasConstraintName("class_progression_class_id_fkey");
|
.HasConstraintName("class_progression_class_id_fkey");
|
||||||
|
|
||||||
entity.HasOne(d => d.Entity).WithMany(p => p.ClassProgressions)
|
entity.HasOne(d => d.Entity).WithMany()
|
||||||
.HasForeignKey(d => d.EntityId)
|
.HasForeignKey(d => d.EntityId)
|
||||||
.HasConstraintName("class_progression_entity_id_fkey");
|
.HasConstraintName("class_progression_entity_id_fkey");
|
||||||
});
|
});
|
||||||
@@ -541,6 +736,8 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
.HasConstraintName("class_trainings_item_fkey");
|
.HasConstraintName("class_trainings_item_fkey");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
modelBuilder.Entity<Condition>(entity =>
|
modelBuilder.Entity<Condition>(entity =>
|
||||||
{
|
{
|
||||||
entity.HasKey(e => e.Id).HasName("condition_pkey");
|
entity.HasKey(e => e.Id).HasName("condition_pkey");
|
||||||
@@ -548,37 +745,19 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
entity.ToTable("condition");
|
entity.ToTable("condition");
|
||||||
|
|
||||||
entity.Property(e => e.Id)
|
entity.Property(e => e.Id)
|
||||||
//.ValueGeneratedNever()
|
.ValueGeneratedNever()
|
||||||
.HasDefaultValueSql("nextval('entity_sequence')")
|
|
||||||
.HasColumnName("id");
|
.HasColumnName("id");
|
||||||
entity.Property(e => e.Type)
|
entity.HasOne(e => e.Entity).WithOne()
|
||||||
//.HasConversion(GetEnumConverter<EntityType>())
|
.HasForeignKey<Condition>(e => e.Id)
|
||||||
//.HasConversion<string>()
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
.HasColumnName("type");
|
.HasConstraintName("condition_id_fkey");
|
||||||
entity.Property(e => e.Description).HasColumnName("description");
|
|
||||||
entity.Property(e => e.DescriptionGm).HasColumnName("description_gm");
|
entity.Property(e => e.Group).HasColumnName("group");
|
||||||
entity.Property(e => e.Extra).HasColumnName("extra");
|
entity.Property(e => e.Extra).HasColumnName("extra");
|
||||||
entity.Property(e => e.Img)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("img");
|
|
||||||
entity.Property(e => e.IsChecked)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_checked");
|
|
||||||
entity.Property(e => e.IsTranslated)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_translated");
|
|
||||||
entity.Property(e => e.Name)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("name");
|
|
||||||
entity.Property(e => e.Slug)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("slug");
|
|
||||||
entity.Property(e => e.Group)
|
|
||||||
//.HasConversion(GetEnumConverter<ConditionGroup>())
|
|
||||||
//.HasConversion<string>()
|
|
||||||
.HasColumnName("group");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
modelBuilder.Entity<Deity>(entity =>
|
modelBuilder.Entity<Deity>(entity =>
|
||||||
{
|
{
|
||||||
entity.HasKey(e => e.Id).HasName("deity_pkey");
|
entity.HasKey(e => e.Id).HasName("deity_pkey");
|
||||||
@@ -588,27 +767,12 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
entity.Property(e => e.Id)
|
entity.Property(e => e.Id)
|
||||||
.ValueGeneratedNever()
|
.ValueGeneratedNever()
|
||||||
.HasColumnName("id");
|
.HasColumnName("id");
|
||||||
entity.Property(e => e.Type)
|
entity.HasOne(e => e.Entity).WithOne()
|
||||||
.HasConversion(GetEnumConverter<EntityType>())
|
.HasForeignKey<Deity>(e => e.Id)
|
||||||
.HasColumnName("type");
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
entity.Property(e => e.Description).HasColumnName("description");
|
.HasConstraintName("deity_id_fkey");
|
||||||
entity.Property(e => e.DescriptionGm).HasColumnName("description_gm");
|
|
||||||
entity.Property(e => e.Img)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("img");
|
|
||||||
entity.Property(e => e.IsChecked)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_checked");
|
|
||||||
entity.Property(e => e.IsTranslated)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_translated");
|
|
||||||
entity.Property(e => e.Name)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("name");
|
|
||||||
entity.Property(e => e.SanctificationMust).HasColumnName("sanctification_must");
|
entity.Property(e => e.SanctificationMust).HasColumnName("sanctification_must");
|
||||||
entity.Property(e => e.Slug)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("slug");
|
|
||||||
|
|
||||||
entity.HasMany(d => d.Skills).WithMany(p => p.Deities)
|
entity.HasMany(d => d.Skills).WithMany(p => p.Deities)
|
||||||
.UsingEntity<Dictionary<string, object>>(
|
.UsingEntity<Dictionary<string, object>>(
|
||||||
@@ -706,158 +870,7 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
.HasConstraintName("deity_weapons_deity_id_fkey");
|
.HasConstraintName("deity_weapons_deity_id_fkey");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity<Entity>(entity =>
|
|
||||||
{
|
|
||||||
entity.HasKey(e => e.Id).HasName("entity_pkey");
|
|
||||||
|
|
||||||
entity.ToTable("entity");
|
|
||||||
|
|
||||||
entity.Property(e => e.Id).HasColumnName("id");
|
|
||||||
entity.Property(e => e.Description).HasColumnName("description");
|
|
||||||
entity.Property(e => e.DescriptionGm).HasColumnName("description_gm");
|
|
||||||
entity.Property(e => e.Img)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("img");
|
|
||||||
entity.Property(e => e.IsChecked)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_checked");
|
|
||||||
entity.Property(e => e.IsTranslated)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_translated");
|
|
||||||
entity.Property(e => e.Name)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("name");
|
|
||||||
entity.Property(e => e.Slug)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("slug");
|
|
||||||
|
|
||||||
entity.HasMany(d => d.Traits).WithMany(p => p.Entities)
|
|
||||||
.UsingEntity<Dictionary<string, object>>(
|
|
||||||
"EntityTrait",
|
|
||||||
r => r.HasOne<Trait>().WithMany()
|
|
||||||
.HasForeignKey("TraitId")
|
|
||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
|
||||||
.HasConstraintName("entity_traits_trait_id_fkey"),
|
|
||||||
l => l.HasOne<Entity>().WithMany()
|
|
||||||
.HasForeignKey("EntityId")
|
|
||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
|
||||||
.HasConstraintName("entity_traits_entity_id_fkey"),
|
|
||||||
j =>
|
|
||||||
{
|
|
||||||
j.HasKey("EntityId", "TraitId").HasName("entity_traits_pkey");
|
|
||||||
j.ToTable("entity_traits");
|
|
||||||
j.IndexerProperty<int>("EntityId").HasColumnName("entity_id");
|
|
||||||
j.IndexerProperty<int>("TraitId").HasColumnName("trait_id");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity<EntityAlias>(entity =>
|
|
||||||
{
|
|
||||||
entity.HasKey(e => e.Id).HasName("entity_aliases_pkey");
|
|
||||||
|
|
||||||
entity.ToTable("entity_aliases");
|
|
||||||
|
|
||||||
entity.Property(e => e.Id).HasColumnName("id");
|
|
||||||
entity.Property(e => e.Alias)
|
|
||||||
.HasColumnType("character varying")
|
|
||||||
.HasColumnName("alias");
|
|
||||||
entity.Property(e => e.EntityId).HasColumnName("entity_id");
|
|
||||||
|
|
||||||
entity.HasOne(d => d.Entity).WithMany(p => p.EntityAliases)
|
|
||||||
.HasForeignKey(d => d.EntityId)
|
|
||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
|
||||||
.HasConstraintName("entity_aliases_entity_id_fkey");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity<EntityExternal>(entity =>
|
|
||||||
{
|
|
||||||
entity.HasKey(e => new { e.EntityId, e.TargetId }).HasName("entity_external_pkey");
|
|
||||||
|
|
||||||
entity.ToTable("entity_external");
|
|
||||||
|
|
||||||
entity.Property(e => e.EntityId).HasColumnName("entity_id");
|
|
||||||
entity.Property(e => e.TargetId).HasColumnName("target_id");
|
|
||||||
entity.Property(e => e.Md5)
|
|
||||||
.HasColumnType("character varying")
|
|
||||||
.HasColumnName("md5");
|
|
||||||
entity.Property(e => e.Path)
|
|
||||||
.HasColumnType("character varying")
|
|
||||||
.HasColumnName("path");
|
|
||||||
entity.Property(e => e.Suffix)
|
|
||||||
.HasDefaultValueSql("''::character varying")
|
|
||||||
.HasColumnType("character varying")
|
|
||||||
.HasColumnName("suffix");
|
|
||||||
|
|
||||||
entity.HasOne(d => d.Entity).WithMany(p => p.EntityExternals)
|
|
||||||
.HasForeignKey(d => d.EntityId)
|
|
||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
|
||||||
.HasConstraintName("entity_external_entity_id_fkey");
|
|
||||||
|
|
||||||
entity.HasOne(d => d.Target).WithMany(p => p.EntityExternals)
|
|
||||||
.HasForeignKey(d => d.TargetId)
|
|
||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
|
||||||
.HasConstraintName("entity_external_target_id_fkey");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity<EntityKeyword>(entity =>
|
|
||||||
{
|
|
||||||
entity
|
|
||||||
.HasNoKey()
|
|
||||||
.ToTable("entity_keywords");
|
|
||||||
|
|
||||||
entity.Property(e => e.EntityId).HasColumnName("entity_id");
|
|
||||||
entity.Property(e => e.KeywordId).HasColumnName("keyword_id");
|
|
||||||
|
|
||||||
entity.HasOne(d => d.Entity).WithMany()
|
|
||||||
.HasForeignKey(d => d.EntityId)
|
|
||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
|
||||||
.HasConstraintName("entity_keywords_entity_id_fkey");
|
|
||||||
|
|
||||||
entity.HasOne(d => d.Keyword).WithMany()
|
|
||||||
.HasForeignKey(d => d.KeywordId)
|
|
||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
|
||||||
.HasConstraintName("entity_keywords_keyword_id_fkey");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity<EntitySource>(entity =>
|
|
||||||
{
|
|
||||||
entity
|
|
||||||
.HasNoKey()
|
|
||||||
.ToTable("entity_sources");
|
|
||||||
|
|
||||||
entity.Property(e => e.EntityId).HasColumnName("entity_id");
|
|
||||||
entity.Property(e => e.IsRemaster).HasColumnName("is_remaster");
|
|
||||||
entity.Property(e => e.SourceId).HasColumnName("source_id");
|
|
||||||
entity.Property(e => e.Suffix)
|
|
||||||
.HasDefaultValueSql("''::character varying")
|
|
||||||
.HasColumnType("character varying")
|
|
||||||
.HasColumnName("suffix");
|
|
||||||
|
|
||||||
entity.HasOne(d => d.Entity).WithMany()
|
|
||||||
.HasForeignKey(d => d.EntityId)
|
|
||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
|
||||||
.HasConstraintName("entity_sources_entity_id_fkey");
|
|
||||||
|
|
||||||
entity.HasOne(d => d.Source).WithMany()
|
|
||||||
.HasForeignKey(d => d.SourceId)
|
|
||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
|
||||||
.HasConstraintName("entity_sources_source_id_fkey");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity<ExternalTarget>(entity =>
|
|
||||||
{
|
|
||||||
entity.HasKey(e => e.Id).HasName("external_target_pkey");
|
|
||||||
|
|
||||||
entity.ToTable("external_target");
|
|
||||||
|
|
||||||
entity.Property(e => e.Id).HasColumnName("id");
|
|
||||||
entity.Property(e => e.Icon)
|
|
||||||
.HasColumnType("character varying")
|
|
||||||
.HasColumnName("icon");
|
|
||||||
entity.Property(e => e.Name)
|
|
||||||
.HasColumnType("character varying")
|
|
||||||
.HasColumnName("name");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity<Feat>(entity =>
|
modelBuilder.Entity<Feat>(entity =>
|
||||||
{
|
{
|
||||||
@@ -868,35 +881,19 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
entity.Property(e => e.Id)
|
entity.Property(e => e.Id)
|
||||||
.ValueGeneratedNever()
|
.ValueGeneratedNever()
|
||||||
.HasColumnName("id");
|
.HasColumnName("id");
|
||||||
entity.Property(e => e.Type)
|
entity.HasOne(e => e.Entity).WithOne()
|
||||||
.HasConversion(GetEnumConverter<EntityType>())
|
.HasForeignKey<Feat>(e => e.Id)
|
||||||
.HasColumnName("type");
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
|
.HasConstraintName("feat_id_fkey");
|
||||||
|
|
||||||
entity.Property(e => e.Actions).HasColumnName("actions");
|
entity.Property(e => e.Actions).HasColumnName("actions");
|
||||||
entity.Property(e => e.Description).HasColumnName("description");
|
|
||||||
entity.Property(e => e.DescriptionGm).HasColumnName("description_gm");
|
|
||||||
entity.Property(e => e.Extra).HasColumnName("extra");
|
|
||||||
entity.Property(e => e.Img)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("img");
|
|
||||||
entity.Property(e => e.IsChecked)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_checked");
|
|
||||||
entity.Property(e => e.IsTranslated)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_translated");
|
|
||||||
entity.Property(e => e.Level).HasColumnName("level");
|
entity.Property(e => e.Level).HasColumnName("level");
|
||||||
entity.Property(e => e.LevelTaken).HasColumnName("level_taken");
|
entity.Property(e => e.LevelTaken).HasColumnName("level_taken");
|
||||||
|
entity.Property(e => e.MaxTakable).HasColumnName("max_takable");
|
||||||
entity.Property(e => e.Location)
|
entity.Property(e => e.Location)
|
||||||
.HasMaxLength(12)
|
.HasMaxLength(12)
|
||||||
.HasColumnName("location");
|
.HasColumnName("location");
|
||||||
entity.Property(e => e.MaxTakable).HasColumnName("max_takable");
|
|
||||||
entity.Property(e => e.Name)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("name");
|
|
||||||
entity.Property(e => e.OnlyLevel1).HasColumnName("only_level_1");
|
entity.Property(e => e.OnlyLevel1).HasColumnName("only_level_1");
|
||||||
entity.Property(e => e.Slug)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("slug");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity<FeatPrerequisite>(entity =>
|
modelBuilder.Entity<FeatPrerequisite>(entity =>
|
||||||
@@ -917,24 +914,7 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
.HasConstraintName("feat_prerequisites_feat_id_fkey");
|
.HasConstraintName("feat_prerequisites_feat_id_fkey");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity<Frequency>(entity =>
|
|
||||||
{
|
|
||||||
entity.HasKey(e => e.Id).HasName("frequency_pkey");
|
|
||||||
|
|
||||||
entity.ToTable("frequency");
|
|
||||||
|
|
||||||
entity.Property(e => e.Id)
|
|
||||||
.ValueGeneratedNever()
|
|
||||||
.HasColumnName("id");
|
|
||||||
entity.Property(e => e.Max).HasColumnName("max");
|
|
||||||
entity.Property(e => e.Per).HasColumnName("per");
|
|
||||||
entity.Property(e => e.Value).HasColumnName("value");
|
|
||||||
|
|
||||||
entity.HasOne(d => d.IdNavigation).WithOne(p => p.Frequency)
|
|
||||||
.HasForeignKey<Frequency>(d => d.Id)
|
|
||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
|
||||||
.HasConstraintName("frequency_id_fkey");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity<Heritage>(entity =>
|
modelBuilder.Entity<Heritage>(entity =>
|
||||||
{
|
{
|
||||||
@@ -945,88 +925,18 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
entity.Property(e => e.Id)
|
entity.Property(e => e.Id)
|
||||||
.ValueGeneratedNever()
|
.ValueGeneratedNever()
|
||||||
.HasColumnName("id");
|
.HasColumnName("id");
|
||||||
entity.Property(e => e.Type)
|
entity.HasOne(e => e.Entity).WithOne()
|
||||||
.HasConversion(GetEnumConverter<EntityType>())
|
.HasForeignKey<Heritage>(e => e.Id)
|
||||||
.HasColumnName("type");
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
entity.Property(e => e.AncestryId).HasColumnName("ancestry_id");
|
.HasConstraintName("heritage_id_fkey");
|
||||||
entity.Property(e => e.Description).HasColumnName("description");
|
|
||||||
entity.Property(e => e.DescriptionGm).HasColumnName("description_gm");
|
|
||||||
entity.Property(e => e.Img)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("img");
|
|
||||||
entity.Property(e => e.IsChecked)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_checked");
|
|
||||||
entity.Property(e => e.IsTranslated)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_translated");
|
|
||||||
entity.Property(e => e.Name)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("name");
|
|
||||||
entity.Property(e => e.Slug)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("slug");
|
|
||||||
|
|
||||||
|
entity.Property(e => e.AncestryId).HasColumnName("ancestry_id");
|
||||||
entity.HasOne(d => d.Ancestry).WithMany(p => p.Heritages)
|
entity.HasOne(d => d.Ancestry).WithMany(p => p.Heritages)
|
||||||
.HasForeignKey(d => d.AncestryId)
|
.HasForeignKey(d => d.AncestryId)
|
||||||
.HasConstraintName("heritage_ancestry_id_fkey");
|
.HasConstraintName("heritage_ancestry_id_fkey");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity<Keyword>(entity =>
|
|
||||||
{
|
|
||||||
entity.HasKey(e => e.Id).HasName("keyword_pkey");
|
|
||||||
|
|
||||||
entity.ToTable("keyword");
|
|
||||||
|
|
||||||
entity.Property(e => e.Id).HasColumnName("id");
|
|
||||||
entity.Property(e => e.Slug)
|
|
||||||
.HasMaxLength(50)
|
|
||||||
.HasColumnName("slug");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity<KeywordAlias>(entity =>
|
|
||||||
{
|
|
||||||
entity
|
|
||||||
.HasNoKey()
|
|
||||||
.ToTable("keyword_aliases");
|
|
||||||
|
|
||||||
entity.Property(e => e.KeywordId).HasColumnName("keyword_id");
|
|
||||||
entity.Property(e => e.Value)
|
|
||||||
.HasColumnType("character varying")
|
|
||||||
.HasColumnName("value");
|
|
||||||
|
|
||||||
entity.HasOne(d => d.Keyword).WithMany()
|
|
||||||
.HasForeignKey(d => d.KeywordId)
|
|
||||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
|
||||||
.HasConstraintName("keyword_aliases_keyword_id_fkey");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity<Language>(entity =>
|
|
||||||
{
|
|
||||||
entity.HasKey(e => e.Id).HasName("language_pkey");
|
|
||||||
|
|
||||||
entity.ToTable("language");
|
|
||||||
|
|
||||||
entity.Property(e => e.Id).HasColumnName("id");
|
|
||||||
entity.Property(e => e.Name)
|
|
||||||
.HasColumnType("character varying")
|
|
||||||
.HasColumnName("name");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity<Source>(entity =>
|
|
||||||
{
|
|
||||||
entity.HasKey(e => e.Id).HasName("source_pkey");
|
|
||||||
|
|
||||||
entity.ToTable("source");
|
|
||||||
|
|
||||||
entity.Property(e => e.Id).HasColumnName("id");
|
|
||||||
entity.Property(e => e.Name)
|
|
||||||
.HasColumnType("character varying")
|
|
||||||
.HasColumnName("name");
|
|
||||||
entity.Property(e => e.Url)
|
|
||||||
.HasColumnType("character varying")
|
|
||||||
.HasColumnName("url");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity<Spell>(entity =>
|
modelBuilder.Entity<Spell>(entity =>
|
||||||
{
|
{
|
||||||
@@ -1037,46 +947,31 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
entity.Property(e => e.Id)
|
entity.Property(e => e.Id)
|
||||||
.ValueGeneratedNever()
|
.ValueGeneratedNever()
|
||||||
.HasColumnName("id");
|
.HasColumnName("id");
|
||||||
entity.Property(e => e.Type)
|
entity.HasOne(e => e.Entity).WithOne()
|
||||||
.HasConversion(GetEnumConverter<EntityType>())
|
.HasForeignKey<Spell>(e => e.Id)
|
||||||
.HasColumnName("type");
|
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||||
entity.Property(e => e.CanHeightening).HasColumnName("can_heightening");
|
.HasConstraintName("spell_id_fkey");
|
||||||
|
|
||||||
|
entity.Property(e => e.Level).HasColumnName("level");
|
||||||
entity.Property(e => e.Cost).HasColumnName("cost");
|
entity.Property(e => e.Cost).HasColumnName("cost");
|
||||||
entity.Property(e => e.Counteraction).HasColumnName("counteraction");
|
entity.Property(e => e.Counteraction).HasColumnName("counteraction");
|
||||||
entity.Property(e => e.Description).HasColumnName("description");
|
entity.Property(e => e.Sustained).HasColumnName("sustained");
|
||||||
entity.Property(e => e.DescriptionGm).HasColumnName("description_gm");
|
|
||||||
entity.Property(e => e.Duration)
|
entity.Property(e => e.Duration)
|
||||||
.HasColumnType("character varying")
|
.HasColumnType("character varying")
|
||||||
.HasColumnName("duration");
|
.HasColumnName("duration");
|
||||||
entity.Property(e => e.Img)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("img");
|
|
||||||
entity.Property(e => e.IsChecked)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_checked");
|
|
||||||
entity.Property(e => e.IsTranslated)
|
|
||||||
.HasDefaultValue(false)
|
|
||||||
.HasColumnName("is_translated");
|
|
||||||
entity.Property(e => e.Level).HasColumnName("level");
|
|
||||||
entity.Property(e => e.Name)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("name");
|
|
||||||
entity.Property(e => e.Range)
|
entity.Property(e => e.Range)
|
||||||
.HasColumnType("character varying")
|
.HasColumnType("character varying")
|
||||||
.HasColumnName("range");
|
.HasColumnName("range");
|
||||||
entity.Property(e => e.Requirements)
|
entity.Property(e => e.Requirements)
|
||||||
.HasColumnType("character varying")
|
.HasColumnType("character varying")
|
||||||
.HasColumnName("requirements");
|
.HasColumnName("requirements");
|
||||||
entity.Property(e => e.Slug)
|
|
||||||
.HasMaxLength(150)
|
|
||||||
.HasColumnName("slug");
|
|
||||||
entity.Property(e => e.Sustained).HasColumnName("sustained");
|
|
||||||
entity.Property(e => e.Target)
|
entity.Property(e => e.Target)
|
||||||
.HasColumnType("character varying")
|
.HasColumnType("character varying")
|
||||||
.HasColumnName("target");
|
.HasColumnName("target");
|
||||||
entity.Property(e => e.Time)
|
entity.Property(e => e.Time)
|
||||||
.HasColumnType("character varying")
|
.HasColumnType("character varying")
|
||||||
.HasColumnName("time");
|
.HasColumnName("time");
|
||||||
|
entity.Property(e => e.CanHeightening).HasColumnName("can_heightening");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity<SpellArea>(entity =>
|
modelBuilder.Entity<SpellArea>(entity =>
|
||||||
@@ -1170,30 +1065,6 @@ public partial class Pf2eTestContext : DbContext
|
|||||||
.HasConstraintName("spell_ritual_spell_id_fkey");
|
.HasConstraintName("spell_ritual_spell_id_fkey");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity<Training>(entity =>
|
|
||||||
{
|
|
||||||
entity.HasKey(e => e.Id).HasName("trainings_pkey");
|
|
||||||
|
|
||||||
entity.ToTable("trainings");
|
|
||||||
|
|
||||||
entity.Property(e => e.Id).HasColumnName("id");
|
|
||||||
entity.Property(e => e.Key)
|
|
||||||
.HasColumnType("character varying")
|
|
||||||
.HasColumnName("key");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity<Trait>(entity =>
|
|
||||||
{
|
|
||||||
entity.HasKey(e => e.Id).HasName("trait_pkey");
|
|
||||||
|
|
||||||
entity.ToTable("trait");
|
|
||||||
|
|
||||||
entity.Property(e => e.Id).HasColumnName("id");
|
|
||||||
entity.Property(e => e.Description).HasColumnName("description");
|
|
||||||
entity.Property(e => e.Name)
|
|
||||||
.HasColumnType("character varying")
|
|
||||||
.HasColumnName("name");
|
|
||||||
});
|
|
||||||
|
|
||||||
OnModelCreatingPartial(modelBuilder);
|
OnModelCreatingPartial(modelBuilder);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -142,6 +142,7 @@ CREATE TYPE "trait_type" AS ENUM (
|
|||||||
CREATE TABLE "trait" (
|
CREATE TABLE "trait" (
|
||||||
"id" INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
"id" INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||||
"name" varchar NOT NULL,
|
"name" varchar NOT NULL,
|
||||||
|
"slug" varchar NOT NULL,
|
||||||
"description" text NOT NULL,
|
"description" text NOT NULL,
|
||||||
"type" trait_type NOT NULL
|
"type" trait_type NOT NULL
|
||||||
);
|
);
|
||||||
@@ -210,7 +211,7 @@ CREATE TYPE "spell_damage_kinds" AS ENUM (
|
|||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE "spell" (
|
CREATE TABLE "spell" (
|
||||||
"id" int DEFAULT nextval('entity_sequence') PRIMARY KEY,
|
"id" int PRIMARY KEY,
|
||||||
"level" int NOT NULL,
|
"level" int NOT NULL,
|
||||||
"cost" int NOT NULL,
|
"cost" int NOT NULL,
|
||||||
"counteraction" bool NOT NULL,
|
"counteraction" bool NOT NULL,
|
||||||
@@ -221,8 +222,8 @@ CREATE TABLE "spell" (
|
|||||||
"target" varchar NOT NULL,
|
"target" varchar NOT NULL,
|
||||||
"time" varchar NOT NULL,
|
"time" varchar NOT NULL,
|
||||||
"can_heightening" bool NOT NULL
|
"can_heightening" bool NOT NULL
|
||||||
) INHERITS ("entity");
|
);
|
||||||
-- ALTER TABLE "spell" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
ALTER TABLE "spell" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
||||||
|
|
||||||
CREATE TABLE "spell_area" (
|
CREATE TABLE "spell_area" (
|
||||||
"spell_id" int PRIMARY KEY,
|
"spell_id" int PRIMARY KEY,
|
||||||
@@ -287,27 +288,27 @@ CREATE TYPE "ancestry_vision" AS ENUM (
|
|||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE "action" (
|
CREATE TABLE "action" (
|
||||||
"id" int DEFAULT nextval('entity_sequence') PRIMARY KEY,
|
"id" int PRIMARY KEY,
|
||||||
"action_type" action_type NOT NULL,
|
"action_type" action_type NOT NULL,
|
||||||
"actions" int,
|
"actions" int,
|
||||||
"category" action_category,
|
"category" action_category,
|
||||||
"death_note" bool,
|
"death_note" bool,
|
||||||
"extra" text
|
"extra" text
|
||||||
) INHERITS ("entity");
|
);
|
||||||
-- ALTER TABLE "action" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
ALTER TABLE "action" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
||||||
|
|
||||||
|
|
||||||
-- Ancestry
|
-- Ancestry
|
||||||
|
|
||||||
CREATE TABLE "ancestry" (
|
CREATE TABLE "ancestry" (
|
||||||
"id" int DEFAULT nextval('entity_sequence') PRIMARY KEY,
|
"id" int PRIMARY KEY,
|
||||||
"hp" int NOT NULL,
|
"hp" int NOT NULL,
|
||||||
"reach" int NOT NULL,
|
"reach" int NOT NULL,
|
||||||
"size" enum_size NOT NULL,
|
"size" enum_size NOT NULL,
|
||||||
"speed" int NOT NULL,
|
"speed" int NOT NULL,
|
||||||
"vision" ancestry_vision NOT NULL
|
"vision" ancestry_vision NOT NULL
|
||||||
) INHERITS ("entity");
|
);
|
||||||
-- ALTER TABLE "ancestry" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
ALTER TABLE "ancestry" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
||||||
|
|
||||||
CREATE TABLE "ancestry_languages" (
|
CREATE TABLE "ancestry_languages" (
|
||||||
"ancestry_id" int,
|
"ancestry_id" int,
|
||||||
@@ -339,9 +340,9 @@ ALTER TABLE "ancestry_items" ADD FOREIGN KEY ("item_id") REFERENCES "entity" ("i
|
|||||||
-- Background
|
-- Background
|
||||||
|
|
||||||
CREATE TABLE "background" (
|
CREATE TABLE "background" (
|
||||||
"id" int DEFAULT nextval('entity_sequence') PRIMARY KEY
|
"id" int PRIMARY KEY
|
||||||
) INHERITS ("entity");
|
);
|
||||||
-- ALTER TABLE "background" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
ALTER TABLE "background" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
||||||
|
|
||||||
CREATE TABLE "background_items" (
|
CREATE TABLE "background_items" (
|
||||||
"background_id" int,
|
"background_id" int,
|
||||||
@@ -380,15 +381,15 @@ CREATE TYPE "campaign_feature_category" AS ENUM (
|
|||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE "campaign_feature" (
|
CREATE TABLE "campaign_feature" (
|
||||||
"id" int DEFAULT nextval('entity_sequence') PRIMARY KEY,
|
"id" int PRIMARY KEY,
|
||||||
"level" int,
|
"level" int,
|
||||||
"action_type" action_type NOT NULL,
|
"action_type" action_type NOT NULL,
|
||||||
"actions" int NOT NULL,
|
"actions" int NOT NULL,
|
||||||
"category" campaign_feature_category NOT NULL,
|
"category" campaign_feature_category NOT NULL,
|
||||||
"prerequisites" varchar,
|
"prerequisites" varchar,
|
||||||
"extra" text
|
"extra" text
|
||||||
) INHERITS ("entity");
|
);
|
||||||
-- ALTER TABLE "campaign_feature" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
ALTER TABLE "campaign_feature" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
||||||
|
|
||||||
|
|
||||||
-- Class
|
-- Class
|
||||||
@@ -404,13 +405,13 @@ CREATE TYPE "class_progression_type" AS ENUM (
|
|||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE "class" (
|
CREATE TABLE "class" (
|
||||||
"id" int DEFAULT nextval('entity_sequence') PRIMARY KEY,
|
"id" int PRIMARY KEY,
|
||||||
"hp" int NOT NULL,
|
"hp" int NOT NULL,
|
||||||
"perception" int NOT NULL,
|
"perception" int NOT NULL,
|
||||||
"spellcasting" bool NOT NULL,
|
"spellcasting" bool NOT NULL,
|
||||||
"additionalTrainedSkills" int NOT NULL
|
"additionalTrainedSkills" int NOT NULL
|
||||||
) INHERITS ("entity");
|
);
|
||||||
-- ALTER TABLE "class" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
ALTER TABLE "class" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
||||||
|
|
||||||
CREATE TABLE "class_key_abilities" (
|
CREATE TABLE "class_key_abilities" (
|
||||||
"id" INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
"id" INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||||
@@ -452,11 +453,11 @@ CREATE TYPE "condition_group" AS ENUM (
|
|||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE "condition" (
|
CREATE TABLE "condition" (
|
||||||
"id" int DEFAULT nextval('entity_sequence') PRIMARY KEY,
|
"id" int PRIMARY KEY,
|
||||||
"group" condition_group,
|
"group" condition_group,
|
||||||
"extra" text
|
"extra" text
|
||||||
) INHERITS ("entity");
|
);
|
||||||
-- ALTER TABLE "condition" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
ALTER TABLE "condition" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
||||||
|
|
||||||
|
|
||||||
-- Deity
|
-- Deity
|
||||||
@@ -483,13 +484,13 @@ CREATE TYPE "deity_sanctification" AS ENUM (
|
|||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE "deity" (
|
CREATE TABLE "deity" (
|
||||||
"id" int DEFAULT nextval('entity_sequence') PRIMARY KEY,
|
"id" int PRIMARY KEY,
|
||||||
"category" deity_category NOT NULL,
|
"category" deity_category NOT NULL,
|
||||||
"font" deity_fonts NOT NULL,
|
"font" deity_fonts NOT NULL,
|
||||||
"sanctification_must" bool NOT NULL,
|
"sanctification_must" bool NOT NULL,
|
||||||
"sanctification_type" deity_sanctification NOT NULL
|
"sanctification_type" deity_sanctification NOT NULL
|
||||||
) INHERITS ("entity");
|
);
|
||||||
-- ALTER TABLE "deity" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
ALTER TABLE "deity" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
||||||
|
|
||||||
CREATE TABLE "deity_attributes" (
|
CREATE TABLE "deity_attributes" (
|
||||||
"deity_id" int,
|
"deity_id" int,
|
||||||
@@ -549,7 +550,7 @@ CREATE TYPE "feat_category" AS ENUM (
|
|||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE "feat" (
|
CREATE TABLE "feat" (
|
||||||
"id" int DEFAULT nextval('entity_sequence') PRIMARY KEY,
|
"id" int PRIMARY KEY,
|
||||||
"action_type" action_type NOT NULL,
|
"action_type" action_type NOT NULL,
|
||||||
"actions" int,
|
"actions" int,
|
||||||
"category" feat_category NOT NULL,
|
"category" feat_category NOT NULL,
|
||||||
@@ -559,8 +560,8 @@ CREATE TABLE "feat" (
|
|||||||
"location" varchar(12),
|
"location" varchar(12),
|
||||||
"only_level_1" bool,
|
"only_level_1" bool,
|
||||||
"extra" text
|
"extra" text
|
||||||
) INHERITS ("entity");
|
);
|
||||||
-- ALTER TABLE "feat" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
ALTER TABLE "feat" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
||||||
|
|
||||||
CREATE TABLE "feat_prerequisites" (
|
CREATE TABLE "feat_prerequisites" (
|
||||||
"id" INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
"id" INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||||
@@ -573,10 +574,10 @@ ALTER TABLE "feat_prerequisites" ADD FOREIGN KEY ("feat_id") REFERENCES "feat" (
|
|||||||
-- Heritage
|
-- Heritage
|
||||||
|
|
||||||
CREATE TABLE "heritage" (
|
CREATE TABLE "heritage" (
|
||||||
"id" int DEFAULT nextval('entity_sequence') PRIMARY KEY,
|
"id" int PRIMARY KEY,
|
||||||
"ancestry_id" int
|
"ancestry_id" int
|
||||||
) INHERITS ("entity");
|
);
|
||||||
-- ALTER TABLE "heritage" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
ALTER TABLE "heritage" ADD FOREIGN KEY ("id") REFERENCES "entity" ("id");
|
||||||
ALTER TABLE "heritage" ADD FOREIGN KEY ("ancestry_id") REFERENCES "ancestry" ("id");
|
ALTER TABLE "heritage" ADD FOREIGN KEY ("ancestry_id") REFERENCES "ancestry" ("id");
|
||||||
|
|
||||||
|
|
||||||
@@ -599,6 +600,7 @@ $func$;
|
|||||||
|
|
||||||
----------------------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION f_drop_tables()
|
CREATE OR REPLACE FUNCTION f_drop_tables()
|
||||||
RETURNS void
|
RETURNS void
|
||||||
LANGUAGE plpgsql AS
|
LANGUAGE plpgsql AS
|
||||||
@@ -616,7 +618,7 @@ $func$;
|
|||||||
|
|
||||||
----------------------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION f_drop_tables(_username text)
|
CREATE OR REPLACE FUNCTION f_permission_tables(_username text)
|
||||||
RETURNS void
|
RETURNS void
|
||||||
LANGUAGE plpgsql AS
|
LANGUAGE plpgsql AS
|
||||||
$func$
|
$func$
|
||||||
|
|||||||
+2
-3
@@ -14,8 +14,6 @@ Table entity {
|
|||||||
|
|
||||||
is_translated bool [default: false, note: "Первичный импорт идёт из англоязычного источника, перевод приходит вторым"]
|
is_translated bool [default: false, note: "Первичный импорт идёт из англоязычного источника, перевод приходит вторым"]
|
||||||
is_checked bool [default: false, note: "Флаг, указывающий, что перевод был проверен вручную и не требует обновления парсером"]
|
is_checked bool [default: false, note: "Флаг, указывающий, что перевод был проверен вручную и не требует обновления парсером"]
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Enum entity_type {
|
Enum entity_type {
|
||||||
action
|
action
|
||||||
@@ -98,6 +96,7 @@ Table entity_external {
|
|||||||
Table trait {
|
Table trait {
|
||||||
id int [pk, increment]
|
id int [pk, increment]
|
||||||
name varchar [not null]
|
name varchar [not null]
|
||||||
|
slug varchar [not null]
|
||||||
description text [not null]
|
description text [not null]
|
||||||
type trait_type [not null]
|
type trait_type [not null]
|
||||||
}
|
}
|
||||||
@@ -369,7 +368,7 @@ Enum class_progression_type {
|
|||||||
Table condition {
|
Table condition {
|
||||||
id int [pk, ref: - entity.id]
|
id int [pk, ref: - entity.id]
|
||||||
|
|
||||||
group condition_group [null]
|
group condition_group [null, note: "{}.group"]
|
||||||
|
|
||||||
extra text [null, note: "json для того, что надо рассмотреть"]
|
extra text [null, note: "json для того, что надо рассмотреть"]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user