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", optional: true) .AddUserSecrets() .AddEnvironmentVariables() .Build(); var databaseConfiguration = configuration .GetRequiredSection(DatabaseConfiguration.SectionName) .Get() ?? throw new InvalidOperationException($"{DatabaseConfiguration.SectionName} configuration section not found."); return new Database(databaseConfiguration); } }