@extends('layouts.app') @php use App\Domain\Booking\Enums\BookingStatus; use App\Domain\Booking\Enums\PaymentStatus; $from = $booking->fromInVenueTimezone(); $to = $booking->toInVenueTimezone(); @endphp @section('title', 'Бронь в «'.$venue->name.'» — РестоМесто') @push('meta') {{-- Личная страница брони в индекс не попадает (ТЗ §18.8) --}} @endpush @section('content')
@if (session('booking_message'))

{{ session('booking_message') }}

@endif @if (session('booking_error')) @endif
{{-- Состояние брони: гость должен понимать его без расшифровки --}} @php $tone = match ($booking->status) { BookingStatus::Confirmed, BookingStatus::Visited => ['bg-success-light', 'text-success', '✓'], BookingStatus::PaymentPending, BookingStatus::Pending => ['bg-warning-light', 'text-warning', '⏳'], default => ['bg-danger-light', 'text-danger', '✕'], }; @endphp

{{ $booking->status->label() }}

{{ $venue->name }}, {{ $venue->address }}

@if ($booking->restoplace_reserve_number)

Номер брони: {{ $booking->restoplace_reserve_number }}

@endif
Дата и время
{{ $from->translatedFormat('j F, H:i') }}–{{ $to->format('H:i') }} местное время заведения
Гостей
{{ $booking->guest_count }}
@if ($booking->selected_item_ids)
Стол
№{{ implode(', №', $booking->selected_item_ids) }}
@endif
На имя
{{ $booking->contact_name }}
@if ($booking->comment)
Пожелания
{{ $booking->comment }}
@endif @if ($booking->payment_status !== PaymentStatus::None)
Депозит
{{ $booking->payment_status->label() }} @if ($booking->payment_amount) {{ number_format($booking->payment_amount, 0, ',', ' ') }} ₽ @endif
@endif
{{-- Платёжная ссылка показывается, пока она активна (ТЗ §12.1) --}} @if ($booking->hasActivePaymentLink())

Чтобы бронь подтвердилась, внесите депозит @if ($booking->payment_expires_at) до {{ $booking->payment_expires_at->setTimezone($venue->timezone)->format('H:i') }} @endif.

Перейти к оплате Уже оплатили? Обновить статус
@elseif ($booking->payment_status === PaymentStatus::Expired)

Срок оплаты депозита истёк. Забронируйте заново или свяжитесь с заведением.

@elseif ($booking->status === BookingStatus::Pending && $booking->payment_amount) {{-- Депозит нужен, а ссылки Restoplace не выдал (ТЗ §25.3) --}}

Требуется депозит, но ссылка на оплату пока недоступна. Мы проверим статус; если он не изменится, свяжитесь с заведением.

@endif
Карточка заведения @if ($phone = $venue->publicPhone()) Позвонить в заведение @endif @if ($booking->status->isCancellable() && config('restomesto.booking.guest_cancellation_enabled'))
@csrf
@endif

Сохраните эту ссылку — по ней всегда виден актуальный статус брони.

@endsection