import { fetchAdminList } from "@/lib/admin-list"; import { canAccess, PERMS } from "@/lib/permissions"; import { RoomsTable } from "./rooms-table"; export default async function RoomsPage({ params: paramsPromise, searchParams, }: { params: Promise<{ locale?: string }>; searchParams: Promise>; }) { const result = await fetchAdminList( { permission: PERMS.ROOMS_VIEW, // Prisma model is `Rooms` → client accessor `rooms`. // Owner is denormalized on the row (ownerId / ownerName), not a relation. model: "rooms", searchFields: ["name", "ownerName"], select: { id: true, name: true, ownerId: true, ownerName: true, state: true, users: true, usersMax: true, description: true, }, filterMap: { filter_state: (v) => ({ state: v }), }, mapRow: (r) => ({ id: r.id as number, name: r.name as string, ownerName: (r.ownerName as string) || "—", ownerId: (r.ownerId as number) ?? 0, state: r.state as string, users: r.users as number, usersMax: r.usersMax as number, description: (r.description as string) || "", }), }, paramsPromise as Promise<{ locale: string }>, searchParams, ); const canEdit = canAccess(result.permissions, PERMS.ROOMS_EDIT, result.rank); return (

Rooms

{result.total.toLocaleString()} rooms total

); }