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 options)
: base(options) { }
#region DbSets
public virtual DbSet Actions { get; set; }
public virtual DbSet Ancestries { get; set; }
public virtual DbSet Archetypes { get; set; }
public virtual DbSet AncestryBoosts { get; set; }
public virtual DbSet AncestryItems { get; set; }
public virtual DbSet AncestryLanguages { get; set; }
public virtual DbSet Backgrounds { get; set; }
public virtual DbSet BackgroundBoosts { get; set; }
public virtual DbSet BackgroundItems { get; set; }
public virtual DbSet BackgroundSkills { get; set; }
public virtual DbSet Classes { get; set; }
public virtual DbSet ClassKeyAbilities { get; set; }
public virtual DbSet ClassProgressions { get; set; }
public virtual DbSet ClassTrainings { get; set; }
public virtual DbSet SubclassGroups { get; set; }
public virtual DbSet Subclasses { get; set; }
public virtual DbSet Conditions { get; set; }
public virtual DbSet Deities { get; set; }
public virtual DbSet DeityAttributes { get; set; }
public virtual DbSet DeityDomains { get; set; }
public virtual DbSet DeitySpells { get; set; }
public virtual DbSet DeityWeapons { get; set; }
public virtual DbSet Entities { get; set; }
public virtual DbSet EntityExternals { get; set; }
public virtual DbSet EntitySources { get; set; }
public virtual DbSet ExternalTargets { get; set; }
public virtual DbSet Feats { get; set; }
public virtual DbSet FeatPrerequisites { get; set; }
public virtual DbSet Frequencies { get; set; }
public virtual DbSet Heritages { get; set; }
public virtual DbSet Keywords { get; set; }
public virtual DbSet KeywordAliases { get; set; }
public virtual DbSet Languages { get; set; }
public virtual DbSet Rituals { get; set; }
public virtual DbSet RitualAreas { get; set; }
public virtual DbSet RitualChecks { get; set; }
public virtual DbSet Rules { get; set; }
public virtual DbSet Sources { get; set; }
public virtual DbSet Spells { get; set; }
public virtual DbSet SpellAreas { get; set; }
public virtual DbSet SpellDamages { get; set; }
public virtual DbSet SpellDefenses { get; set; }
public virtual DbSet Trainings { get; set; }
public virtual DbSet 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.EnableSensitiveDataLogging();
optionsBuilder.UseNpgsql(
databaseConnection,
builder =>
{
builder
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum()
.MapEnum();
}
);
}
}