export const dynamic = 'force-dynamic'; import React from 'react'; import Link from 'next/link'; import { notFound } from 'next/navigation'; import { prisma } from '@/lib/prisma'; interface PageProps { params: Promise<{ tenant: string }>; } export default async function TenantClassesPage({ params }: PageProps) { const { tenant: tenantSlug } = await params; const tenant = await prisma.tenant.findUnique({ where: { slug: tenantSlug }, include: { classSessions: { orderBy: { startTime: 'asc' }, include: { bookings: { include: { user: true }, }, }, }, }, }); if (!tenant) { notFound(); } return (
{/* Navigation Bar */}
← System Overview / {tenant.name}
Instructor Portal →
{/* Header */}

Live Virtual Classes

Browse and join interactive, real-time fitness sessions powered by unbranded WebRTC.

{/* Classes Grid */}
{tenant.classSessions.length === 0 ? (

No classes currently scheduled for this gym.

Schedule Class in Instructor Portal
) : (
{tenant.classSessions.map((session) => (
Virtual Classroom {session.bookings.length} / {session.capacity} spots filled

{session.title}

{session.description && (

{session.description}

)}
Start: {new Date(session.startTime).toLocaleString()}
Room: {session.jitsiRoomId}
Join Live Classroom Host View
))}
)}
); }