@extends('layouts.admin') @section('title', 'Mapa Operacional') @push('styles') @endpush @section('content') @php // Serializar reservas para o Alpine.js $reservationsJson = []; foreach ($reservations as $roomId => $resGroup) { foreach ($resGroup as $res) { $reservationsJson[] = [ 'id' => $res->id, 'locator' => $res->locator, 'room_id' => $res->room_id, 'status' => $res->status, 'guest_name' => $res->guest?->full_name ?? 'Hóspede', 'check_in' => $res->check_in_expected->format('Y-m-d'), 'check_out' => $res->check_out_expected->format('Y-m-d'), 'adults' => $res->adults, 'children' => $res->children, 'total_expected' => $res->total_expected, 'notes' => $res->notes, 'sales_channel' => $res->salesChannel?->name, 'channel_icon_html' => $res->salesChannel?->icon_html, 'channel_badge_color'=> $res->salesChannel?->badge_color, 'check_in_realized' => $res->check_in_realized?->format('d/m/Y H:i'), 'check_out_realized' => $res->check_out_realized?->format('d/m/Y H:i'), ]; } } $timelineDatesJson = array_map(fn($d) => $d->format('Y-m-d'), $timelineDates); $statusLabels = [ 'provisional' => 'Provisória', 'confirmed' => 'Confirmada', 'checked_in' => 'In-House', 'checked_out' => 'Check-Out', 'canceled' => 'Cancelada', 'no_show' => 'No-Show', ]; // Montar lista de quartos simplificada para o Alpine (inclui category_id para o simulador) $roomsList = []; foreach ($categories as $cat) { foreach ($cat->rooms as $room) { $roomsList[$room->id] = [ 'id' => $room->id, 'name' => $room->name, 'category' => $cat->name, 'room_category_id' => $cat->id, ]; } } @endphp