using Vegasco.Server.Api.Persistence; namespace Vegasco.Server.Api.Cars; public static class DeleteCar { public static RouteHandlerBuilder MapEndpoint(IEndpointRouteBuilder builder) { return builder .MapDelete("cars/{id:guid}", Endpoint) .WithTags("Cars") .WithDescription("Deletes a car by ID") .Produces(204) .Produces(404); } public static async Task Endpoint( Guid id, ApplicationDbContext dbContext, CancellationToken cancellationToken) { Car? car = await dbContext.Cars.FindAsync([new CarId(id)], cancellationToken: cancellationToken); if (car is null) { return TypedResults.NotFound(); } dbContext.Cars.Remove(car); await dbContext.SaveChangesAsync(cancellationToken); return TypedResults.NoContent(); } }