using ControlCenter.Api.Data; using ControlCenter.Api.Hubs; using ControlCenter.Api.Repositories; using Microsoft.EntityFrameworkCore; var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddOpenApi(); // Register SignalR for real-time agent status updates builder.Services.AddSignalR(); // Register Agent State Repository builder.Services.AddScoped(); // Register DbContext with PostgreSQL builder.Services.AddDbContext(options => { var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ?? "Host=localhost;Database=control_center;Username=postgres;Password=postgres"; options.UseNpgsql(connectionString, npgsqlOptions => { npgsqlOptions.MigrationsAssembly(typeof(AppDbContext).Assembly.FullName); }); }); var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.MapOpenApi(); } app.UseHttpsRedirection(); // Map SignalR hubs app.MapHub("/hubs/agent-status"); app.Run();