Files
Pf2eDataScrapper/Pf2eModel/Pf2eDbContext.cs
T

159 lines
5.2 KiB
C#

using dotenv.net;
using dotenv.net.Utilities;
using Microsoft.EntityFrameworkCore;
using Pf2eModel.Model.Base;
using Pf2eModel.Model.Base.Keywords;
using Pf2eModel.Model.Base.Source;
using Pf2eModel.Model.Base.Targets;
using Pf2eModel.Model.Common;
using Pf2eModel.Model.Common.I18n;
using Pf2eModel.Model.Enum;
using Pf2eModel.Model.Structure;
using Pf2eModel.Model.Structure.AncestryRelation;
using Pf2eModel.Model.Structure.BackgroundRelation;
using Pf2eModel.Model.Structure.ClassRelation;
using Pf2eModel.Model.Structure.DeityRelation;
using Pf2eModel.Model.Structure.FeatRelation;
using Pf2eModel.Model.Structure.RitualRelation;
using Pf2eModel.Model.Structure.SpellRelation;
namespace Pf2eModel;
public partial class Pf2eDbContext : DbContext
{
public Pf2eDbContext() { }
public Pf2eDbContext(DbContextOptions<Pf2eDbContext> options)
: base(options) { }
#region DbSets
public virtual DbSet<Model.Structure.Action> Actions { get; set; }
public virtual DbSet<Ancestry> Ancestries { get; set; }
public virtual DbSet<Archetype> Archetypes { 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<SubclassGroup> SubclassGroups { get; set; }
public virtual DbSet<Subclass> Subclasses { 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<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<Ritual> Rituals { get; set; }
public virtual DbSet<RitualArea> RitualAreas { get; set; }
public virtual DbSet<RitualCheck> RitualChecks { get; set; }
public virtual DbSet<Rule> Rules { 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<Training> Trainings { get; set; }
public virtual DbSet<Trait> Traits { get; set; }
#endregion
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
DotEnv.Load(options: new DotEnvOptions(probeForEnv: true, probeLevelsToSearch: 2));
string databaseConnection = EnvReader.GetStringValue("DATABASE_CONNECTION");
// optionsBuilder.LogTo(Console.WriteLine);
optionsBuilder.UseSnakeCaseNamingConvention();
optionsBuilder.UseNpgsql(
databaseConnection,
builder =>
{
builder
.MapEnum<ActionEnum>()
.MapEnum<EntityType>()
.MapEnum<EntityRarity>()
.MapEnum<LocaleType>()
.MapEnum<TraitType>()
.MapEnum<ActionCategory>()
.MapEnum<Size>()
.MapEnum<AncestryVision>()
.MapEnum<ClassProgressionType>()
.MapEnum<ConditionGroup>()
.MapEnum<DeityCategory>()
.MapEnum<DeityFonts>()
.MapEnum<DeitySanctification>()
.MapEnum<FeatActionType>()
.MapEnum<FeatCategory>()
.MapEnum<SpellAreaType>()
.MapEnum<SpellDamageCategory>()
.MapEnum<SpellDamageKinds>()
.MapEnum<SpellTradition>()
.MapEnum<AttributeValues>()
.MapEnum<TrainingRank>()
.MapEnum<SourceCategory>();
}
);
}
}