namespace MinAttest.Api.Features.Health; using MinAttest.Infrastructure.Data; using Microsoft.EntityFrameworkCore; public static class Health { public static RouteGroupBuilder MapHealth(this RouteGroupBuilder group) { group.MapGet("/health", GetHealth) .WithName("Health") .WithOpenApi(); return group; } private static async Task GetHealth(AppDbContext db, CancellationToken ct) { var canConnect = await db.Database.CanConnectAsync(ct); var payload = new { status = canConnect ? "OK" : "DEGRADED", database = canConnect ? "Up" : "Down", time = DateTimeOffset.UtcNow }; return canConnect ? Results.Ok(payload) : Results.Json(payload, statusCode: StatusCodes.Status503ServiceUnavailable); } }