import { failTossPaymentsBillingRegistration } from "@/lib/toss-pay";
import { resolveOriginFromHeaders } from "@/lib/mail-urls";

export async function GET(request: Request) {
  const url = new URL(request.url);
  const registrationToken = url.searchParams.get("registration")?.trim() ?? "";

  try {
    const redirectUrl = await failTossPaymentsBillingRegistration({
      code: url.searchParams.get("code") ?? undefined,
      message: url.searchParams.get("message") ?? undefined,
      origin: resolveOriginFromHeaders(request.headers, request.url),
      registrationToken,
    });
    return new Response(null, {
      status: 302,
      headers: { Location: redirectUrl },
    });
  } catch {
    return Response.redirect(
      new URL("/mail?panel=setup&section=billing&error=billing-registration-failed", request.url),
      302,
    );
  }
}
