using comissions.app.api.Entities; using Microsoft.EntityFrameworkCore; using Npgsql; namespace comissions.app.api; public class ApplicationDbContext:DbContext { private readonly ApplicationDatabaseConfigurationModel _configuration; public ApplicationDbContext(ApplicationDatabaseConfigurationModel configuration, DbContextOptions options):base(options) { _configuration = configuration; } public ApplicationDbContext() { _configuration = null; } public ApplicationDbContext(ApplicationDatabaseConfigurationModel configuration) { _configuration = null; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { var connectionStringBuilder = new NpgsqlConnectionStringBuilder() { Host = _configuration?.Host ?? "localhost", Port = _configuration?.Port ?? 5432, Database = _configuration?.Database ?? "comissionsapp", Username = _configuration?.Username ?? "postgres", Password = _configuration?.Password ?? "postgres" }; optionsBuilder.UseNpgsql(connectionStringBuilder.ConnectionString); base.OnConfiguring(optionsBuilder); } #region DB Sets public DbSet Users { get; set; } = null!; public DbSet ArtistPageSettings { get; set; }= null!; public DbSet UserArtists { get; set; }= null!; public DbSet ArtistRequests { get; set; }= null!; public DbSet ArtistPortfolioPieces { get; set; }= null!; public DbSet Requests { get; set; }= null!; public DbSet RequestReferences { get; set; }= null!; public DbSet RequestAssets { get; set; }= null!; public DbSet ArtistRequestMessages { get; set; }= null!; public DbSet Bans { get; set; }= null!; public DbSet Suspensions { get; set; }= null!; #endregion }