import { eq } from "drizzle-orm"; import { redirect } from "next/navigation"; import { getTranslations } from "next-intl/server"; import { ContentCard, StatBlock } from "@/components/public/ui"; import { auth } from "@/lib/auth"; import { db, User } from "@/lib/db"; import RedeemForm from "./RedeemForm"; export const dynamic = "force-dynamic"; export default async function RedeemPage() { const session = await auth(); if (!session?.user?.id) redirect("/login"); const t = await getTranslations("pages.redeem"); const id = Number(session.user.id); // Show the signed-in user's current credit balance for context (fail soft). let user: { username: string; credits: number } | null = null; try { const [row] = await db .select({ username: User.username, credits: User.credits }) .from(User) .where(eq(User.id, id)) .limit(1); user = row ?? null; } catch { user = null; } if (!user) redirect("/login"); return (

{t("oncePerAccount")}

{t("instantCredit")}

); }