@php $roomsGrid = isset($bookableRooms) ? $bookableRooms : collect(); $defaultCheckIn = old('check_in', $checkIn ?? ''); $defaultCheckOut = old('check_out', $checkOut ?? ''); $reserveUrl = route('public.booking.reserve', $hotel->slug); @endphp @once @push('head') @endpush @endonce @if ($roomsGrid->isEmpty()) @if(isset($roomTypes) && $roomTypes->count())
@foreach($roomTypes as $rt) @php $avail = (int) ($rt->public_available_count ?? 0); $total = (int) ($rt->public_total_rooms ?? 0); @endphp

{{ $rt->name }}

@if($avail > 0) {{ $avail }} available @elseif($total > 0) All {{ $total }} {{ $total === 1 ? 'room' : 'rooms' }} booked right now — check dates or call us @else 0 listed @endif · up to {{ $rt->max_capacity ?? $rt->default_capacity }} guests

@if($rt->description)

{{ \Illuminate\Support\Str::limit(strip_tags($rt->description), 160) }}

@endif

From @if($rt->public_min_price !== null) {{ number_format((float) $rt->public_min_price, 0) }} UGX @else on request @endif / night

@endforeach
@endif @else
@foreach ($roomsGrid as $room) @php $typeName = $room->roomType->name ?? 'Room'; $cap = (int) ($room->capacity ?? $room->roomType->max_capacity ?? $room->roomType->default_capacity ?? 2); $price = (float) ($room->price_per_night ?? 0); $amenities = is_array($room->amenities) ? array_slice($room->amenities, 0, 4) : []; @endphp
{{ e($room->room_name ?: 'Room ' . $room->room_number) }} Available

{{ $room->room_name ?: 'Room ' . $room->room_number }}

{{ e($typeName) }}

{{ $cap }} guests max @if(filled($room->floor)) · Floor {{ e($room->floor) }} @endif

{{ number_format($price, 0) }} UGX / night

@if(count($amenities))
@foreach ($amenities as $tag) {{ e(is_string($tag) ? $tag : json_encode($tag)) }} @endforeach
@endif
@endforeach
@csrf

Request booking

Your request is sent to the hotel as pending. You will receive a confirmation email; the front desk must confirm before your stay is final.

@push('scripts') @endpush @endif