import Link from "next/link"; import { auth, signOut } from "@/lib/auth"; import { prisma } from "@/lib/prisma"; import { siteSettings } from "@/lib/services/site-settings"; export async function SiteHeader() { const [hotelName, session] = await Promise.all([ siteSettings.get("hotel_name", "Atom"), auth(), ]); let credits = 0; let duckets = 0; let diamonds = 0; if (session?.user?.id) { try { const id = Number(session.user.id); const [user, currencies] = await Promise.all([ prisma.user.findUnique({ where: { id }, select: { credits: true } }), prisma.usersCurrency.findMany({ where: { userId: id } }), ]); credits = user?.credits ?? 0; for (const c of currencies) { if (c.type === 0) duckets = c.amount; if (c.type === 5) diamonds = c.amount; } } catch { // DB unavailable — render the header without live balances. } } const isStaff = (session?.user?.rank ?? 0) >= 7; return (
{hotelName} {session?.user ? ( <>
cr {credits} d {duckets} ◆ {diamonds}
Redeem Settings {session.user.name}
{ "use server"; await signOut({ redirectTo: "/" }); }} >
) : ( <> Register Login )}
); }