Approve Booking Review and confirm this booking. Adjust pricing or duration if needed.
{#if loadingOverlaps}
Checking for overlapping bookings...
{:else if overlappingBookings.length > 0} {@const oldest = findOldestBooking()}

⚠️ Overlapping Bookings ({overlappingBookings.length})

{#if oldest?.isCurrent}
★ This booking was created first - it has priority
{/if}
{#each overlappingBookings as ob (ob.id)}
{#if oldest?.id === ob.id} {/if} {ob.user?.full_name || 'Unknown'}
{new SvelteDate(ob.start_time).toLocaleDateString('en-GB', { weekday: 'short', day: 'numeric', month: 'short', hour: 'numeric', minute: '2-digit', hour12: true })} ({ob.duration_minutes} min)
{#if ob.services && ob.services.length > 0}
{ob.services.join(', ')}
{/if}
{ob.status}
{new SvelteDate(ob.created_at).toLocaleDateString('en-GB', { day: 'numeric', month: 'short', hour: 'numeric', minute: '2-digit', hour12: true })}
{/each}
{/if}

Customer Contact

Name
{booking.user?.full_name || '—'}
Phone
{booking.user?.phone || '—'}
Email
{booking.user?.email || '—'}

Booking Date & Time

{getBookingDateTime()}