Initial commit - SaveTheMoment Atlas Basis-Setup
This commit is contained in:
52
app/dashboard/bookings/[id]/page.tsx
Normal file
52
app/dashboard/bookings/[id]/page.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
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>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user