@extends('layouts.panel') @section('title', 'Recepción - Hostess') {{-- Usamos el CSS operativo estándar que ya creamos --}} @push('styles') @vite('src/assets/css/operational.css') @endpush @php // --- DATOS SIMULADOS (MOCK) --- // En un entorno real, esto vendría desde el controlador // 1. Reservas $reservas = [ ['id' => 'R-1024', 'cliente' => 'Carlos Mendoza', 'dni' => '45889900', 'tipo' => 'VIP', 'pax' => 4, 'hora' => '20:00', 'estado' => 'checkin', 'zona' => 'Terraza'], ['id' => 'R-1025', 'cliente' => 'Ana Paula T.', 'dni' => '70112233', 'tipo' => 'Std', 'pax' => 2, 'hora' => '20:30', 'estado' => 'pendiente', 'zona' => 'Salón'], ['id' => 'R-1026', 'cliente' => 'Jorge L. (Cumple)', 'dni' => '10203040', 'tipo' => 'Evento', 'pax' => 10, 'hora' => '21:00', 'estado' => 'pendiente', 'zona' => 'Box 1'], ]; // 2. Lista de Espera $espera = [ ['id' => 'W-01', 'cliente' => 'Familia Ruiz', 'pax' => 5, 'tiempo' => '15 min', 'estado' => 'espera'], ['id' => 'W-02', 'cliente' => 'Pareja Barra', 'pax' => 2, 'tiempo' => '5 min', 'estado' => 'espera'], ]; // 3. Zonas y Mesas $zonas = [ 'SALÓN PRINCIPAL' => [ ['id' => 'M-01', 'cap' => 4, 'estado' => 'ocupada', 'tiempo' => '45m'], ['id' => 'M-02', 'cap' => 4, 'estado' => 'libre', 'tiempo' => ''], ['id' => 'M-03', 'cap' => 6, 'estado' => 'reservada', 'tiempo' => '20:00'], ['id' => 'M-04', 'cap' => 2, 'estado' => 'libre', 'tiempo' => ''], ['id' => 'M-05', 'cap' => 8, 'estado' => 'ocupada', 'tiempo' => '1h 10m'], ], 'TERRAZA VIP' => [ ['id' => 'T-01', 'cap' => 4, 'estado' => 'libre', 'tiempo' => ''], ['id' => 'T-02', 'cap' => 4, 'estado' => 'libre', 'tiempo' => ''], ['id' => 'BOX-1', 'cap' => 10, 'estado' => 'reservada', 'tiempo' => '21:00'], ] ]; // Función auxiliar para estilos (traducida a clases Tailwind) function getMesaClasses($estado) { switch($estado) { case 'libre': return 'bg-white border-emerald-200 text-emerald-600 hover:border-[#194B95] hover:shadow-md'; case 'ocupada': return 'bg-red-50 border-red-100 text-[#E21C21] cursor-not-allowed'; case 'reservada': return 'bg-blue-50 border-blue-200 text-[#194B95] hover:bg-blue-100'; default: return 'bg-slate-50 border-slate-200 text-slate-400'; } } @endphp @section('content') {{-- Header --}}

RECEPCIÓN

Total Pax: 42 Ocupación: 65%
{{-- Sidebar Izquierdo: Listas --}} {{-- Panel Derecho: Mapa de Mesas --}}
{{-- Barra de Acción (Oculta por defecto) --}}
@foreach($zonas as $nombre => $mesas_zona)

{{ $nombre }}

@foreach($mesas_zona as $m) @php $clases = getMesaClasses($m['estado']); $icon = $m['estado'] == 'reservada' ? 'clock' : ($m['estado'] == 'ocupada' ? 'users' : 'armchair'); $statusColor = $m['estado'] == 'libre' ? 'bg-emerald-500' : ($m['estado'] == 'ocupada' ? 'bg-[#E21C21]' : 'bg-[#194B95]'); @endphp
{{ $m['id'] }}
@if($m['tiempo']) {{ $m['tiempo'] }} @endif
{{ $m['cap'] }} PAX
@if($m['estado'] == 'libre')
ASIGNAR
@endif
@endforeach
@endforeach
Libre Ocupada Reservada
{{-- MODAL NUEVA RESERVA --}} @endsection @push('scripts') @endpush