import { NextRequest, NextResponse } from 'next/server'; import { RecommendationService, RecommendationAlgorithm } from '@/lib/recommendation-service'; export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url); const algorithm = (searchParams.get('algorithm') || 'unwatched_first') as RecommendationAlgorithm; const limit = Math.min(parseInt(searchParams.get('limit') || '20'), 100); const excludeRecentDays = parseInt(searchParams.get('exclude_recent_days') || '30'); // Validate parameters if (limit < 1 || limit > 100) { return NextResponse.json( { error: 'Limit must be between 1 and 100' }, { status: 400 } ); } if (excludeRecentDays < 0) { return NextResponse.json( { error: 'Exclude recent days must be non-negative' }, { status: 400 } ); } const service = new RecommendationService(); const recommendations = await service.getRecommendations({ algorithm, limit, excludeRecentDays }); return NextResponse.json({ recommendations, algorithm, total_videos: recommendations.length, total_recommended: recommendations.length }); } catch (error: any) { console.error('Recommendation error:', error); return NextResponse.json( { error: error.message || 'Failed to get recommendations' }, { status: 500 } ); } }