using ASTRAIN.Api.Data; using ASTRAIN.Api.Endpoints; using Microsoft.AspNetCore.StaticFiles; using Microsoft.Extensions.FileProviders; using Microsoft.EntityFrameworkCore; var builder = WebApplication.CreateBuilder(args); builder.Services.AddOpenApi(); builder.Services.AddSwaggerGen(); builder.Services.AddCors(options => { options.AddDefaultPolicy(policy => { policy.AllowAnyOrigin() .AllowAnyHeader() .AllowAnyMethod(); }); }); builder.Services.AddDbContext(options => { var connectionString = builder.Configuration.GetConnectionString("Default") ?? "Data Source=Data/astrain.db"; options.UseSqlite(connectionString); }); var app = builder.Build(); if (app.Environment.IsDevelopment()) { app.MapOpenApi(); app.UseSwagger(); app.UseSwaggerUI(options => { options.SwaggerEndpoint("/openapi/v1.json", "ASTRAIN API"); options.RoutePrefix = "docs"; }); } // app.UseHttpsRedirection(); app.UseCors(); app.UseDefaultFiles(); app.UseStaticFiles(new StaticFileOptions { ServeUnknownFileTypes = true }); using (var scope = app.Services.CreateScope()) { var db = scope.ServiceProvider.GetRequiredService(); db.Database.EnsureCreated(); } var api = app.MapGroup("/api"); api.MapHealthEndpoints(); api.MapUserEndpoints(); api.MapExerciseEndpoints(); api.MapRoutineEndpoints(); api.MapRoutineRunEndpoints(); app.MapFallbackToFile("index.html"); app.Run();