import { NextRequest, NextResponse } from 'next/server' import { auth } from '@/auth' import { searchOverviewService } from '@/lib/ai/services/search-overview.service' import { withAiQuota, handleQuotaHttpError } from '@/lib/ai-quota' export async function POST(request: NextRequest) { try { const session = await auth() if (!session?.user?.id) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } const { query, results, language } = await request.json() if (!query?.trim() || !Array.isArray(results)) { return NextResponse.json({ error: 'query and results required' }, { status: 400 }) } const overview = await withAiQuota( session.user.id, 'semantic_search', () => searchOverviewService.generate(query, results, language), { lane: 'chat' }, ) return NextResponse.json(overview) } catch (error: unknown) { const quotaResp = handleQuotaHttpError(error) if (quotaResp) return quotaResp console.error('[Search Overview] Error:', error) const message = error instanceof Error ? error.message : 'Search overview failed' return NextResponse.json({ error: message, hasRelevantInfo: false, answer: '' }, { status: 500 }) } }