import { NextRequest, NextResponse } from 'next/server';
import { resolveStoreIdentifier } from '@/lib/storeHost';

export async function GET(request: NextRequest, { params }: { params: Promise<{ token: string }> }) {
	const { token } = await params;
	const backendUrl = process.env.BACKEND_URL;
	const appToken = process.env.STORE_APP_TOKEN;
	const host = request.headers.get('host') ?? '';
	const subdominio = resolveStoreIdentifier(host) ?? process.env.STORE_SUBDOMINIO_DEV;

	if (!backendUrl || !appToken || !subdominio) {
		return NextResponse.json({ error: 'not configured' }, { status: 404 });
	}

	const url = `${backendUrl}/api/v1/store/checkout/${encodeURIComponent(token)}?subdominio=${encodeURIComponent(subdominio)}`;
	try {
		const res = await fetch(url, {
			headers: { 'x-app-key': appToken },
			signal: AbortSignal.timeout(8000)
		});
		return NextResponse.json(await res.json(), { status: res.ok ? 200 : res.status });
	} catch {
		return NextResponse.json({ error: 'backend error' }, { status: 502 });
	}
}
