import { redirect } from "next/navigation";
import { requireUser } from "@/lib/auth";
import { ANNUAL_FEE_USD, capturePayPalOrder, recordPayment } from "@/lib/payments";

export default async function PayPalReturnPage(props: PageProps<"/payment/paypal-return">) {
  const user = await requireUser();
  const sp = await props.searchParams;
  const orderId = typeof sp.token === "string" ? sp.token : null;
  if (!orderId) redirect("/account/renew?error=Missing+order");

  const result = await capturePayPalOrder(orderId, user.id);
  if (!result.ok) redirect(`/account/renew?error=${encodeURIComponent(result.reason)}`);

  await recordPayment({ userId: user.id, provider: "PAYPAL", amount: ANNUAL_FEE_USD, externalId: orderId });
  redirect("/account?paid=1");
}
