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

export async function GET(
  request: NextRequest,
  { params }: { params: Promise<{ ruc: string }> },
) {
  const { ruc } = await params;
  const backendUrl = process.env.BACKEND_URL;
  const appToken = process.env.STORE_APP_TOKEN;
  if (!backendUrl || !appToken) {
    return NextResponse.json({ message: 'Tienda no configurada' }, { status: 500 });
  }

  const subdominio = request.nextUrl.searchParams.get('subdominio') ?? '';

  try {
    const url = new URL(`${backendUrl}/api/v1/store/ruc/${encodeURIComponent(ruc)}`);
    if (subdominio) url.searchParams.set('subdominio', subdominio);
    const res = await fetch(url.toString(), {
      method: 'GET',
      headers: { 'x-app-key': appToken },
      signal: AbortSignal.timeout(12000),
    });
    const data = await res.json().catch(() => ({}));
    return NextResponse.json(data, { status: res.status });
  } catch {
    return NextResponse.json({ message: 'No se pudo conectar con el servidor' }, { status: 502 });
  }
}
