@extends('layouts.app') @section('title', 'Dashboard') @section('content')

Dashboard

villa
chevron_left {{ $rangeStart->format('M j') }} — {{ $rangeEnd->format('M j, Y') }} chevron_right
@if ($timeline->isEmpty())

No properties yet

Add a property and connect its Airbnb or Traveloka calendar to see bookings here.

@else
Property
@foreach ($days as $day)
{{ strtoupper($day->format('D')) }} {{ $day->day }}
@endforeach
@foreach ($timeline as $row) @php $property = $row['property']; @endphp
{{ $property->name }} @if ($row['hasConflict']) warning Conflict @endif
@forelse ($property->channelConnections as $connection) {{ $connection->label }}{{ ! $loop->last ? ' · ' : '' }} @empty No channels connected @endforelse
@foreach ($days as $day)
@endforeach
@foreach ($row['lanes'] as $laneIndex => $lane) @foreach ($lane as $item) @php $event = $item['event']; $phone = $event->guestPhoneLast4(); $guestName = $event->guestName(); $reservationUrl = $event->reservationUrl(); $displayName = $guestName ?: $event->summary.($phone ? " ••{$phone}" : ''); $tooltip = collect([ $item['label'].' · '.($guestName ?? $event->summary), $event->guestCount(), $event->totalPaid() ? 'Paid '.$event->totalPaid() : null, ])->filter()->implode(' · '); @endphp {{ $item['label'] }} {{ $displayName }} @endforeach @endforeach
@endforeach
Airbnb
Traveloka
Booking.com
Occupancy {{ $occupancyPct }}%
Confirmed Bookings {{ $confirmedBookingsCount }}
@endif
@endsection