import { NextRequest, NextResponse } from 'next/server'; import { getProductData } from '@akinon/next/data/server'; export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url); const pksParam = searchParams.get('pks'); if (!pksParam) { return NextResponse.json( { error: 'pks parameter required' }, { status: 400 } ); } const pks = pksParam.split(',').map(Number).filter(Boolean); if (pks.length === 0) { return NextResponse.json({ error: 'Invalid pks' }, { status: 400 }); } const results = await Promise.all( pks.map(async (pk) => { try { const { breadcrumbData } = await getProductData({ pk }); const categoryIds = breadcrumbData ?.map((item: any) => item.extra_context?.attributes?.category_id) .filter(Boolean) || []; return { pk, categoryIds }; } catch (error) { console.error(`Error fetching product ${pk}:`, error); return { pk, categoryIds: [] }; } }) ); const mapping: Record = {}; results.forEach(({ pk, categoryIds }) => { mapping[String(pk)] = categoryIds; }); return NextResponse.json(mapping); } catch (error) { console.error('Error in product-categories API:', error); return NextResponse.json( { error: 'Internal server error' }, { status: 500 } ); } }