using comissions.app.database.Entities; using Microsoft.EntityFrameworkCore; using Npgsql; namespace comissions.app.database; public class ApplicationDbContext:DbContext { private readonly ApplicationDatabaseConfigurationModel _configuration; public ApplicationDbContext(ApplicationDatabaseConfigurationModel configuration, DbContextOptions options):base(options) { _configuration = configuration; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { var connectionStringBuilder = new NpgsqlConnectionStringBuilder() { Host = _configuration?.Host ?? "localhost", Port = _configuration?.Port ?? 5432, Database = _configuration?.Database ?? "artplatform", Username = _configuration?.Username ?? "sa", Password = _configuration?.Password ?? "P@ssw0rd" }; optionsBuilder.UseNpgsql(connectionStringBuilder.ConnectionString); base.OnConfiguring(optionsBuilder); } #region DB Sets public DbSet Users { get; set; } = null!; public DbSet UserSellerProfiles { get; set; }= null!; public DbSet SellerProfileRequests { get; set; }= null!; public DbSet SellerProfilePortfolioPieces { get; set; }= null!; public DbSet SellerServices { get; set; }= null!; public DbSet SellerServiceOrders { get; set; }= null!; public DbSet SellerServiceOrderMessages { get; set; }= null!; public DbSet SellerServiceOrderMessageAttachments { get; set; }= null!; public DbSet SellerServiceOrderReviews { get; set; }= null!; #endregion }