using FastEndpoints; using Microsoft.EntityFrameworkCore; namespace Faben.Api.Endpoints; public class GetProductDetailEndpoint(FabenDbContext context) : Endpoint { public override void Configure() { Get("products/{name}"); Version(1); AllowAnonymous(); } public override async Task HandleAsync(EmptyRequest req, CancellationToken c) { var name = Route("name"); var result = await context .Products .AsNoTracking() .Where(p => p.SeoFriendlyName == name) .OrderBy(p => p.Name) .Select(p => new ProductDto { Id = p.Id, CategoryId = p.CategoryId, CategoryName = p.Category.Name, SeoFriendlyName = p.SeoFriendlyName, Image = p.ProductImages.FirstOrDefault()!.Url, Name = p.Name, BrandId = p.BrandId, BrandName = p.Brand.Name, SkuNo = p.SkuNo, PdfDrawingLink = p.PdfDrawingLink, ThreeDModelLink = p.ThreeDModelLink, BrandLogo = p.Brand.Image }).FirstOrDefaultAsync(c); await SendOkAsync(result, c); } }