import { searchWithFacets } from "@/lib/headless/client"; import type { ProductFilters } from "@/lib/headless/types"; // PredictiveSearch es un componente cliente y no puede pegarle directo // al provider server-side (MEDUSA_BACKEND_URL es un nombre DNS interno // del cluster, no resuelve desde el navegador) -- esta ruta es el // puente same-origin. export async function GET(request: Request) { const { searchParams } = new URL(request.url); const filters: ProductFilters = { query: searchParams.get("q") ?? undefined, category: searchParams.get("category") ?? undefined, collection: searchParams.get("collection") ?? undefined, brand: searchParams.get("brand") ?? undefined, ageRange: searchParams.get("ageRange") ?? undefined, }; const minPrice = searchParams.get("minPrice"); if (minPrice) filters.minPrice = Number(minPrice); const maxPrice = searchParams.get("maxPrice"); if (maxPrice) filters.maxPrice = Number(maxPrice); const limit = searchParams.get("limit"); if (limit) filters.limit = Number(limit); try { const result = await searchWithFacets(filters); // provider actual no implementa searchWithFacets (mock/shopify) -- // degradar a vacío, no a 500; el componente cliente cae de nuevo a // su propio filtrado si esta ruta no trae nada útil. return Response.json( result ?? { products: [], facetDistribution: {}, count: 0 }, ); } catch (error) { return Response.json( { products: [], facetDistribution: {}, count: 0, error: (error as Error).message, }, { status: 502 }, ); } }