import { createServerCaller } from "@/trpc/server"; import { getPlatformRole } from "@/server/roles"; import { auth } from "@/server/auth"; import { headers } from "next/headers"; import { Badge } from "@/components/ui/badge"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { PlatformUsers } from "./platform-users"; import { PlatformCodes } from "./platform-codes"; export default async function AdminPage() { const session = await auth.api.getSession({ headers: await headers() }); const role = session ? await getPlatformRole(session.user.id) : null; const caller = await createServerCaller(); const [groups, events, audit] = await Promise.all([ caller.platform.groups(), caller.platform.events(), caller.platform.audit(), ]); const canManageUsers = role === "super_admin" || role === "admin"; return (

Platform

Full access for deployment operators.

Groups {groups.length} groups {groups.map((group) => (
{group.name} {group.quota.unlimited ? "unlimited" : `${group.quota.used}/${group.quota.eventLimit ?? 0}`} {group.quota.complimentary ? " · comp" : ""}
))}
Events {events.length} events {events.map((event) => (
{event.title}
{event.status} {event.listed ? listed : null}
))}
{canManageUsers ? : null} {canManageUsers ? ( ({ id: group.id, name: group.name }))} /> ) : null} Audit
    {audit.slice(0, 40).map((row) => (
  • {row.action} · {row.subjectType} {new Date(row.createdAt).toLocaleString()}
  • ))}
); }