import { NextRequest, NextResponse } from 'next/server'; import { getDayOfWeekAnalytics, getMonthOfYearAnalytics, getSeasonalityByAttribute, } from '@/lib/analytics/seasonality.service'; import { parseAnalyticsParams } from '../_utils'; export async function GET(request: NextRequest) { try { const filters = parseAnalyticsParams(request); const { searchParams } = new URL(request.url); const view = searchParams.get('view') || 'day-of-week'; const attribute = searchParams.get('attribute') as 'size' | 'color' | null; let result; switch (view) { case 'month-of-year': result = await getMonthOfYearAnalytics(filters); break; case 'by-attribute': if (attribute && ['size', 'color'].includes(attribute)) { result = await getSeasonalityByAttribute(filters, attribute); } else { return NextResponse.json( { error: 'attribute parameter required (size or color)' }, { status: 422 }, ); } break; default: result = await getDayOfWeekAnalytics(filters); } return NextResponse.json(result); } catch (error) { console.error('GET /api/analytics/seasonality error:', error); return NextResponse.json({ error: 'Failed to fetch seasonality analytics' }, { status: 500 }); } }