'use client'; import { useState } from 'react'; import { useRouter } from 'next/navigation'; import { FiCalendar, FiMapPin, FiUser, FiMail, FiPhone, FiEdit, FiSave, FiX, FiCamera, FiTruck, FiFileText } from 'react-icons/fi'; import Link from 'next/link'; import { formatDate, formatDateTime } from '@/lib/date-utils'; import ContractSection from './ContractSection'; interface BookingDetailProps { booking: any; emails: any[]; user: any; } export default function BookingDetail({ booking, emails, user }: BookingDetailProps) {
← Zurück zu Buchungen

Buchung {booking.bookingNumber}

{!editing ? ( ) : ( <> )}

Status

{getStatusLabel(booking.status)}
{booking.status === 'RESERVED' && ( )} {booking.status === 'CONFIRMED' && ( )} {['RESERVED', 'CONFIRMED'].includes(booking.status) && ( )}

Kundendaten

{editing ? ( setFormData({ ...formData, customerName: e.target.value })} className="w-full px-3 py-2 bg-gray-700 border border-gray-600 text-white rounded-lg focus:ring-2 focus:ring-red-500" /> ) : (

{booking.customerName}

)}
{editing ? ( setFormData({ ...formData, customerEmail: e.target.value })} className="w-full px-3 py-2 bg-gray-700 border border-gray-600 text-white rounded-lg focus:ring-2 focus:ring-red-500" /> ) : (

{booking.customerEmail}

)}
{editing ? ( setFormData({ ...formData, customerPhone: e.target.value })} className="w-full px-3 py-2 bg-gray-700 border border-gray-600 text-white rounded-lg focus:ring-2 focus:ring-red-500" /> ) : (

{booking.customerPhone}

)}

{booking.invoiceType === 'BUSINESS' ? 'Geschäftlich' : 'Privat'}

{booking.companyName && (

{booking.companyName}

)}

Event-Details

{formatDate(booking.eventDate)}

{booking.location.name}

{booking.eventAddress}

{booking.eventZip} {booking.eventCity}

{booking.eventLocation && (

{booking.eventLocation}

)}

{formatDateTime(booking.setupTimeStart)}

{formatDateTime(booking.setupTimeLatest)}

{booking.notes && (

Notizen

{booking.notes}

)} {emails.length > 0 && (

E-Mail-Verlauf

{emails.map((email) => (
{email.subject} {formatDate(email.receivedAt)}

Von: {email.from}

{email.parsed && ( Automatisch verarbeitet )}
))}
)}

Fotobox

{booking.photobox ? (

Modell

{booking.photobox.model}

Seriennummer

{booking.photobox.serialNumber}

) : (

Noch nicht zugewiesen

)}
router.refresh()} />

Preis

{booking.calculatedPrice || 0}€

{booking.distance && (

+ {booking.distance} km Anfahrt

)}

Vertrag

Unterschrieben {booking.contractSigned ? 'Ja' : 'Nein'}
{booking.contractSignedAt && (

am {formatDate(booking.contractSignedAt)}

)}
{booking.tours && booking.tours.length > 0 && (

Tour

{booking.tours.map((tour: any) => (
{tour.driver ? (

Fahrer: {tour.driver.name}

) : (

Noch kein Fahrer zugewiesen

)}
))}
)}
); }