import { NextRequest, NextResponse } from 'next/server';

import { getCreationList } from '@/services/creations';

import { CreationListItem } from '@/types/Creation';

export async function GET(request: NextRequest) {
  try {
    const searchParams = request.nextUrl.searchParams;
    const limitRaw = searchParams.get('limit');
    const limit = limitRaw ? Math.max(1, parseInt(limitRaw, 10)) : 6;

    const response = await getCreationList({
      videoType: ['alkotas_video'],
      maxResults: 80,
    });

    const rawList: CreationListItem[] = Array.isArray(response) ? response : [];

    const list = rawList.map((item) => ({
      ...item,
      cardType: item.cardType || 'creation',
    }));

    const items = list.filter((item) => item?.alkotasAzonosito).slice(0, limit);

    return NextResponse.json({ items }, { status: 200 });
  } catch (error) {
    console.error('Error fetching video highlights:', error);
    return NextResponse.json({ error: 'Failed to fetch video highlights' }, { status: 500 });
  }
}
