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

export const runtime = 'nodejs';

export async function GET(request: NextRequest) {
  try {
    const searchParams = request.nextUrl.searchParams;
    
    // Build query object from search params
    const query: Record<string, string> = {};
    const q = searchParams.get('q');
    const art_style = searchParams.get('art style');
    const artist = searchParams.get('artist');

    if (q) query.q = q;
    if (art_style) query['art style'] = art_style;
    if (artist) query.artist = artist;

    // Fetch artwork data from backend API
    const response = await serverApiClient('library/artwork', {
      query,
      revalidate: 300, // Cache for 5 minutes
    });

    if (!response.success) {
      return NextResponse.json(
        { 
          success: false, 
          message: response.message || 'Failed to fetch artwork data' 
        },
        { 
          status: 404,
          headers: {
            'Cache-Control': 'public, s-maxage=60, stale-while-revalidate=30',
          },
        }
      );
    }

    return NextResponse.json(
      { data: response.data },
      {
        headers: {
          'Cache-Control': 'public, s-maxage=300, stale-while-revalidate=600',
          'CDN-Cache-Control': 'public, s-maxage=300',
          'Vercel-CDN-Cache-Control': 'public, s-maxage=300',
        },
      }
    );
  } catch (error: any) {
    console.error('Error in artwork library API:', error);
    return NextResponse.json(
      { 
        success: false, 
        message: error.message || 'Internal server error' 
      },
      { 
        status: 500,
        headers: {
          'Cache-Control': 'public, s-maxage=10, stale-while-revalidate=30',
        },
      }
    );
  }
}
