using static PostFundManagement.Infrastructure.Extensions.Constants; namespace PostFundManagement.Infrastructure.Database; public sealed class ApplicationDbContextFactory : IDesignTimeDbContextFactory { public ApplicationDbContext CreateDbContext(string[] args) { var configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddUserSecrets(optional: true) .AddEnvironmentVariables() .Build(); var optionsBuilder = new DbContextOptionsBuilder(); var connectionString = configuration.GetConnectionString(DatabaseConfigName) ?? throw new InvalidOperationException($"Connection string '{DatabaseConfigName}' was not found in configuration."); optionsBuilder.UseNpgsql(connectionString, npgsqlOptions => npgsqlOptions.MigrationsAssembly(typeof(ApplicationDbContext).Assembly.FullName)); return new ApplicationDbContext(optionsBuilder.Options); } }