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

/**
 * 이미지 프록시 API
 * GET /api/image-proxy?url=<encoded_url>
 *
 * CORS 우회를 위한 서버 사이드 이미지 프록시.
 * PDF 생성 시 클라이언트에서 cross-origin 이미지를 base64로 변환할 때 사용.
 */
export async function GET(request: NextRequest) {
  const url = request.nextUrl.searchParams.get('url');

  if (!url) {
    return NextResponse.json({ error: 'url parameter is required' }, { status: 400 });
  }

  try {
    const response = await fetch(url, {
      headers: { 'Accept': 'image/*' },
      signal: AbortSignal.timeout(10000),
    });

    if (!response.ok) {
      return NextResponse.json(
        { error: `Failed to fetch image: ${response.status}` },
        { status: response.status }
      );
    }

    const contentType = response.headers.get('content-type') || 'image/jpeg';
    const buffer = await response.arrayBuffer();

    return new NextResponse(buffer, {
      status: 200,
      headers: {
        'Content-Type': contentType,
        'Cache-Control': 'public, max-age=3600',
      },
    });
  } catch {
    return NextResponse.json(
      { error: 'Failed to proxy image' },
      { status: 502 }
    );
  }
}
