import { getServerSession } from 'next-auth';
import { authOptions } from '@/lib/auth';
import { prisma } from '@/lib/prisma';
import { redirect } from 'next/navigation';
import BookingDetail from '@/components/BookingDetail';
import DashboardSidebar from '@/components/DashboardSidebar';

export default async function BookingDetailPage({ params }: { params: { id: string } }) {
  const session = await getServerSession(authOptions);

  if (!session) {
    redirect('/login');
  }

  const booking = await prisma.booking.findUnique({
    where: { id: params.id },
    include: {
      location: true,
      photobox: true,
      tour: {
        include: {
          driver: true,
        },
      },
      bookingEquipment: {
        include: {
          equipment: true,
        },
      },
    },
  });

  if (!booking) {
    redirect('/dashboard/bookings');
  }

  const emails = await prisma.email.findMany({
    where: { bookingId: booking.id },
    orderBy: { receivedAt: 'desc' },
  });

  return (
    <div className="min-h-screen bg-gradient-to-br from-gray-900 via-gray-800 to-gray-900">
      <div className="flex">
        <DashboardSidebar user={session?.user} />
        <main className="flex-1 p-8">
          <BookingDetail booking={booking} emails={emails} user={session?.user} />
        </main>
      </div>
    </div>
  );
}
