using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Design; using Microsoft.Extensions.Configuration; using Musify.Infrastructure.Configuration; namespace Musify.Infrastructure.Persistence { public class DatabaseDesignTimeFactory : IDesignTimeDbContextFactory { public Database CreateDbContext(string[] args) { var configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("DesignSettings.json") .AddUserSecrets() .Build(); var databaseConfiguration = DatabaseConfiguration.Load(configuration); var optionsBuilder = new DbContextOptionsBuilder(); optionsBuilder.UseNpgsql(databaseConfiguration.ConnectionString); return new Database(databaseConfiguration); } } }