{booking.bookingNumber}
{booking.customerName}
Kundendaten
Event-Details
{booking.notes}
import { getServerSession } from 'next-auth'; import { authOptions } from '@/lib/auth'; import { prisma } from '@/lib/prisma'; import { redirect } from 'next/navigation'; import DashboardSidebar from '@/components/DashboardSidebar'; import BookingAutomationPanel from '@/components/BookingAutomationPanel'; import { formatDate, formatDateTime } from '@/lib/date-utils'; import Link from 'next/link'; export default async function BookingDetailPage({ params }: { params: { id: string } }) { const session = await getServerSession(authOptions); if (!session || session.user.role !== 'ADMIN') { redirect('/auth/signin'); } const booking = await prisma.booking.findUnique({ where: { id: params.id }, include: { location: true, photobox: true, }, }); if (!booking) { redirect('/dashboard/bookings'); } const getStatusColor = (status: string) => { switch (status) { case 'RESERVED': return 'bg-yellow-500/20 text-yellow-400 border border-yellow-500/50'; case 'CONFIRMED': return 'bg-green-500/20 text-green-400 border border-green-500/50'; case 'COMPLETED': return 'bg-blue-500/20 text-blue-400 border border-blue-500/50'; case 'CANCELLED': return 'bg-red-500/20 text-red-400 border border-red-500/50'; default: return 'bg-gray-500/20 text-gray-400 border border-gray-500/50'; } }; const getStatusLabel = (status: string) => { switch (status) { case 'RESERVED': return 'Reserviert'; case 'CONFIRMED': return 'Bestätigt'; case 'COMPLETED': return 'Abgeschlossen'; case 'CANCELLED': return 'Storniert'; default: return status; } }; return (
{booking.customerName}
{booking.notes}