using Microsoft.EntityFrameworkCore; using TaskTracker.Core.Interfaces; using TaskTracker.Infrastructure.Data; using TaskTracker.Infrastructure.Repositories; var builder = WebApplication.CreateBuilder(args); // EF Core builder.Services.AddDbContext(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"))); // Repositories builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); // Controllers + JSON builder.Services.AddControllers() .AddJsonOptions(o => { o.JsonSerializerOptions.Converters.Add(new System.Text.Json.Serialization.JsonStringEnumConverter()); o.JsonSerializerOptions.ReferenceHandler = System.Text.Json.Serialization.ReferenceHandler.IgnoreCycles; }); // Swagger builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); // CORS — allow Chrome extension and local MCP server builder.Services.AddCors(options => { options.AddDefaultPolicy(policy => { policy.AllowAnyOrigin() .AllowAnyHeader() .AllowAnyMethod(); }); }); var app = builder.Build(); // Auto-migrate on startup in development if (app.Environment.IsDevelopment()) { using var scope = app.Services.CreateScope(); var db = scope.ServiceProvider.GetRequiredService(); db.Database.Migrate(); } app.UseSwagger(); app.UseSwaggerUI(); app.UseCors(); app.UseDefaultFiles(); app.UseStaticFiles(); app.MapControllers(); app.Run();