using Vegasco.WebApi.Persistence; namespace Vegasco.WebApi.Consumptions; public static class GetConsumption { public record Response(Guid Id, DateTimeOffset DateTime, double Distance, double Amount, bool IgnoreInCalculation, Guid CarId); public static RouteHandlerBuilder MapEndpoint(IEndpointRouteBuilder builder) { return builder .MapGet("consumptions/{id:guid}", Endpoint) .WithTags("Consumptions"); } private static async Task Endpoint( ApplicationDbContext dbContext, Guid id, CancellationToken cancellationToken) { Consumption? consumption = await dbContext.Consumptions.FindAsync([new ConsumptionId(id)], cancellationToken); if (consumption is null) { return TypedResults.NotFound(); } var response = new Response(consumption.Id.Value, consumption.DateTime, consumption.Distance, consumption.Amount, consumption.IgnoreInCalculation, consumption.CarId.Value); return TypedResults.Ok(response); } }