import Link from 'next/link'; import { CalendarDays, MapPin, Users, Clock, Pencil, UserPlus, } from 'lucide-react'; import { getTranslations } from 'next-intl/server'; import { createEventManagementApi } from '@kit/event-management/api'; import { formatDate } from '@kit/shared/dates'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; import { Badge } from '@kit/ui/badge'; import { Button } from '@kit/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@kit/ui/card'; import { CmsPageShell } from '~/components/cms-page-shell'; import { EVENT_STATUS_LABEL_KEYS, EVENT_STATUS_VARIANT, } from '~/lib/status-badges'; import { DeleteEventButton } from './delete-event-button'; interface PageProps { params: Promise<{ account: string; eventId: string }>; } export default async function EventDetailPage({ params }: PageProps) { const { account, eventId } = await params; const client = getSupabaseServerClient(); const api = createEventManagementApi(client); const t = await getTranslations('cms.events'); const [event, registrations] = await Promise.all([ api.events.getById(eventId), api.registrations.list(eventId), ]); if (!event) return
{t('notFound')}
; const eventData = event as Record; return (
{/* Action Buttons */}
{/* Header */}
{t( EVENT_STATUS_LABEL_KEYS[String(eventData.status)] ?? String(eventData.status), )}
{/* Detail Cards */}

{t('date')}

{formatDate(eventData.event_date as string)}

{t('time')}

{String(eventData.start_time ?? '—')} –{' '} {String(eventData.end_time ?? '—')}

{t('location')}

{String(eventData.location ?? '—')}

{t('registrations')}

{registrations.length} / {String(eventData.capacity ?? '∞')}

{/* Description */} {eventData.description ? ( {t('description')}

{String(eventData.description)}

) : null} {/* Registrations Table */} {t('registrationsCount', { count: registrations.length })} {registrations.length === 0 ? (

{t('noRegistrations')}

) : (
{registrations.map((reg: Record) => ( ))}
{t('name')} E-Mail {t('parentName')} {t('date')}
{String(reg.last_name ?? '')},{' '} {String(reg.first_name ?? '')} {String(reg.email ?? '—')} {String(reg.parent_name ?? '—')} {formatDate(reg.created_at as string)}
)}
); }