import * as React from "react";
import { db } from "@/lib/db";
import { requireUser } from "@/lib/guards";
import { money } from "@/lib/serialize";
import { PanelShell } from "@/components/panel/shell";

export default async function PanelLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  const user = await requireUser();

  const row = await db.user.findUnique({
    where: { id: user.id },
    select: { balance: true },
  });

  return (
    <PanelShell
      user={{
        id: user.id,
        username: user.username,
        role: user.role,
        balance: money(row?.balance ?? 0),
        impersonated: Boolean(user.impersonatedBy),
        name: user.name,
        email: user.email,
        status: user.status,
      }}
    >
      {children}
    </PanelShell>
  );
}
