@extends('layouts.admin') @section('title', 'Reserva ' . $reservation->locator) @section('breadcrumb') Reservas / {{ $reservation->locator }} @endsection @push('styles') @endpush @section('content') @php $sc = \App\Models\Reservation::$statusColors[$reservation->status] ?? ['bg'=>'#e2e8f0','text'=>'#475569','border'=>'#cbd5e1']; $nights = $reservation->nights; @endphp {{-- PAGE HEADER --}} @if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{{ session('error') }}
@endif
{{-- ═══ COLUNA PRINCIPAL ═══ --}}
{{-- BLOCO 1: Dados principais --}}

Dados da Reserva

@if($reservation->canEdit()) Editar @endif
Locator{{ $reservation->locator }}
Check-in Previsto{{ $reservation->check_in_expected->format('d/m/Y') }}
Check-out Previsto{{ $reservation->check_out_expected->format('d/m/Y') }}
Diárias{{ $nights }}
@if($reservation->check_in_realized)
Check-in Real✓ {{ $reservation->check_in_realized->format('d/m/Y H:i') }}
@endif @if($reservation->check_out_realized)
Check-out Real✓ {{ $reservation->check_out_realized->format('d/m/Y H:i') }}
@endif
UH{{ $reservation->room?->name ?? '—' }}
Categoria{{ $reservation->category?->name ?? '—' }}
Canal de Venda @if($reservation->salesChannel) {{ $reservation->salesChannel->name }} @else Direto / Balcão @endif
Adultos{{ $reservation->adults }}
Crianças{{ $reservation->children ?: '—' }}
Café da Manhã {{ $reservation->breakfast_included ? '✓ Incluso' : 'Não incluso' }}
@if($reservation->notes)
Observações

{{ $reservation->notes }}

@endif @if($reservation->operational_notes)
Notas Operacionais

{{ $reservation->operational_notes }}

@endif
{{-- BLOCO 2: Hóspede Principal --}}

Hóspede Principal

@if($reservation->guest) Ficha @endif
@if($reservation->guest)
Nome{{ $reservation->guest->full_name }}
Documento{{ strtoupper($reservation->guest->document_type ?? '') }}: {{ $reservation->guest->document_number ?? '—' }}
Telefone{{ $reservation->guest->phone ?? '—' }}
E-mail{{ $reservation->guest->email ?? '—' }}
Nascimento{{ $reservation->guest->birth_date?->format('d/m/Y') ?? '—' }}
Nacionalidade{{ $reservation->guest->nationality ?? '—' }}
Profissão{{ $reservation->guest->profession ?? '—' }}
Gênero{{ match($reservation->guest->gender ?? '') { 'male' => 'Masculino', 'female' => 'Feminino', 'other' => 'Outro', default => '—' } }}
@if($reservation->guest->address)
Endereço

{{ $reservation->guest->address }}{{ $reservation->guest->address_number ? ', ' . $reservation->guest->address_number : '' }} {{ $reservation->guest->address_complement ? '(' . $reservation->guest->address_complement . ')' : '' }} — {{ $reservation->guest->neighborhood }} — {{ $reservation->guest->city }}/{{ $reservation->guest->state }} {{ $reservation->guest->zip_code ? ' — CEP: ' . $reservation->guest->zip_code : '' }}

@endif @else

Hóspede não vinculado.

@endif
{{-- BLOCO 3: Acompanhantes --}}

Acompanhantes ({{ $reservation->companions->count() }})

@if($reservation->canEdit()) @endif
{{-- Listagem --}} @forelse($reservation->companions as $comp)
{{ $comp->full_name }}
{{ $comp->kinship ? $comp->kinship . ' · ' : '' }} {{ $comp->document_number ? strtoupper($comp->document_type ?? 'doc') . ': ' . $comp->document_number : '' }} {{ $comp->birth_date ? ' · ' . $comp->birth_date->format('d/m/Y') : '' }}
@if($reservation->canEdit())
@csrf @method('DELETE')
@endif
@empty

Nenhum acompanhante registrado.

@endforelse {{-- Formulário de adição --}}
@csrf
{{-- BLOCO 4: Histórico recente (preview) --}}

Histórico

Ver tudo
@forelse($reservation->activityLogs->take(5) as $log)
{{ $log->description }}
{{ $log->user?->name ?? 'Sistema' }} • {{ $log->created_at->format('d/m/Y H:i') }}
@empty

Nenhum histórico registrado.

@endforelse
{{-- ═══ SIDEBAR DE AÇÕES ═══ --}}
{{-- Ações Rápidas --}}

Ações Rápidas

@if($reservation->canCheckIn()) Realizar Check-in @endif @if($reservation->canCheckOut()) Realizar Check-out @endif @if($reservation->canEdit()) Editar Reserva @endif Ver Histórico Completo Ver no Mapa Ficha FNRH / PDF @if($reservation->canCancel()) @endif {{-- CHECK-IN DIGITAL (Fase 17) --}} @if(in_array($reservation->status, ['provisional', 'confirmed']))
@if($reservation->online_checkin_at)
✓ Formulário enviado em {{ $reservation->online_checkin_at->format('d/m/Y H:i') }}
@endif
@endif
{{-- Financeiro Resumido --}}

Financeiro

Valor TotalR$ {{ number_format($reservation->total_expected, 2, ',', '.') }}
PagoR$ {{ number_format($reservation->total_paid, 2, ',', '.') }}
Saldo R$ {{ number_format($reservation->balance, 2, ',', '.') }}
@if($reservation->breakfast_included)
☕ Café da manhã incluso
@endif
Diárias
{{ $nights }} × R$ {{ $nights > 0 ? number_format($reservation->total_expected / $nights, 2, ',', '.') : '0,00' }}/noite
{{-- Responsáveis --}} @if($reservation->checkedInBy || $reservation->checkedOutBy || $reservation->canceledBy)

Responsáveis

@if($reservation->checkedInBy)
Check-in por{{ $reservation->checkedInBy->name }}
@endif @if($reservation->checkedOutBy)
Check-out por{{ $reservation->checkedOutBy->name }}
@endif @if($reservation->canceledBy)
Cancelado por{{ $reservation->canceledBy->name }}
Motivo{{ $reservation->cancellation_reason ?: '—' }}
@endif
@endif
{{-- MODAL CANCELAMENTO --}} {{-- MODAL CHECK-IN DIGITAL --}} @endsection @push('scripts') @endpush