using GreenHome.Application; using GreenHome.Infrastructure.Data; using GreenHome.Infrastructure.Services.AI; using GreenHome.Infrastructure.Services.Alert; using GreenHome.Infrastructure.Services.Auth; using GreenHome.Infrastructure.Services.Checklist; using GreenHome.Infrastructure.Services.Device; using GreenHome.Infrastructure.Services.PowerOutage; using GreenHome.Infrastructure.Services.Report; using GreenHome.Infrastructure.Services.Sun; using GreenHome.Infrastructure.Services.Telemetry; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; namespace GreenHome.Infrastructure; /// /// Registers all Infrastructure-layer services with the DI container. /// Call this from Program.cs to keep startup clean. /// public static class DependencyInjection { public static IServiceCollection AddInfrastructure( this IServiceCollection services, IConfiguration configuration) { // Entity Framework services.AddDbContext(options => { options.UseSqlServer(configuration.GetConnectionString("Default")); }); // Auth services.AddScoped(); // Alert services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); // Device services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); // Telemetry services.AddScoped(); // Reports services.AddScoped(); services.AddScoped(); services.AddScoped(); // Checklist services.AddScoped(); // Power Outage services.AddScoped(); // AI services.AddScoped(); // Sun Calculator services.AddScoped(); return services; } }