using FastEndpoints; using FastEndpoints.Swagger; using Microsoft.Extensions.Options; using SpaceGame.Api.Universe.Bootstrap; using SpaceGame.Api.Universe.Simulation; var builder = WebApplication.CreateBuilder(args); builder.Services.AddCors((options) => { options.AddDefaultPolicy((policy) => { policy .AllowAnyHeader() .AllowAnyMethod() .AllowAnyOrigin(); }); }); builder.Services .AddOptions() .Bind(builder.Configuration.GetSection("StaticData")) .Validate(options => !string.IsNullOrWhiteSpace(options.DataRoot), "StaticData:DataRoot must be configured.") .ValidateOnStart(); builder.Services.Configure(builder.Configuration.GetSection("Balance")); builder.Services.Configure(builder.Configuration.GetSection("WorldGeneration")); builder.Services.Configure(builder.Configuration.GetSection("OrbitalSimulation")); builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddHostedService(); builder.Services.AddFastEndpoints(); builder.Services.SwaggerDocument(); var app = builder.Build(); app.UseCors(); app.UseFastEndpoints(); app.UseSwaggerGen(); app.Run();