import { prisma } from "@/lib/prisma"; import { getServerSession } from "next-auth/next"; import { authOptions } from "@/lib/auth-config"; import { redirect } from "next/navigation"; import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; export const dynamic = "force-dynamic"; export default async function DashboardPage() { const session = await getServerSession(authOptions); if (!session?.user) redirect("/login"); const isSuperadmin = session.user.role === "superadmin"; const establishmentId = session.user.establishmentId; const where = isSuperadmin ? {} : { establishmentId }; const nodesCount = await prisma.node.count({ where: isSuperadmin ? {} : { student: { class: { establishmentId } } }, }); const onlineNodes = await prisma.node.count({ where: isSuperadmin ? { status: "online" } : { status: "online", student: { class: { establishmentId } } }, }); const instancesRunning = await prisma.instance.count({ where: isSuperadmin ? { status: "running" } : { status: "running", node: { student: { class: { establishmentId } } } }, }); const studentsCount = await prisma.student.count({ where: isSuperadmin ? {} : { class: { establishmentId } }, }); return (