{{-- Validation errors --}} @if ($errors->any())
{{ __('frontend.validation_errors_title') }}:
    @foreach ($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif {{-- Duffel API error --}} @if (session('api_error'))
{{ __('frontend.api_error') }}: {{ session('api_error') }}
@endif {{-- General system error --}} @if (session('error'))
{{ __('frontend.error') }}: {{ session('error') }}
@endif {{-- Success message (if needed) --}} @if (session('success'))
{{ session('success') }}
@endif @if (!auth()->check())

{{ __('frontend.authentication_required') }}

{!! __('frontend.login_or_register_to_continue', ['login' => ''.__('frontend.login').'', 'register' => ''.__('frontend.register').'']) !!}

@else @if (isset($offer))

{{ __('frontend.flight_booking_details') }}

{{ $offer['slices'][0]['origin']['iata_code'] ?? 'N/A' }} - {{ $offer['slices'][0]['destination']['iata_code'] ?? 'N/A' }}

{{ $offer['slices'][0]['origin']['city_name'] ?? __('frontend.origin') }} {{ __('frontend.to') }} {{ $offer['slices'][0]['destination']['city_name'] ?? __('frontend.destination') }}
{{ ucfirst($offer['slices'][0]['passengers'][0]['cabin_class_marketing_name'] ?? __('frontend.economy')) }} · {{ $offer['slices'][0]['segments'][0]['operating_carrier']['name'] ?? __('frontend.airline') }}
@foreach ($offer['slices'] as $sliceIndex => $slice) @php $departureTime = \Carbon\Carbon::parse($slice['segments'][0]['departing_at']); $arrivalTime = \Carbon\Carbon::parse($slice['segments'][0]['arriving_at']); $duration = $departureTime->diffForHumans($arrivalTime, ['parts' => 2]); $isNonStop = count($slice['segments']) === 1; @endphp
{{ $departureTime->format('D, j M Y') }}, {{ $departureTime->format('H:i') }}
{{ __('frontend.depart_from') }}: {{ $slice['segments'][0]['origin']['name'] ?? __('frontend.airport') }} ({{ $slice['segments'][0]['origin']['iata_code'] ?? 'N/A' }}) @if (isset($slice['segments'][0]['origin_terminal'])) - Terminal {{ $slice['segments'][0]['origin_terminal'] }} @endif
{{ __('frontend.flight_duration') }}: {{ $duration }}
{{ $slice['segments'][0]['origin']['iata_code'] ?? 'N/A' }} - {{ $slice['segments'][0]['destination']['iata_code'] ?? 'N/A' }} - {{ $isNonStop ? __('frontend.non_stop') : __('frontend.with_stops') }}
{{ $arrivalTime->format('D, j M Y') }}, {{ $arrivalTime->format('H:i') }}
{{ __('frontend.arrive_at') }}: {{ $slice['segments'][0]['destination']['name'] ?? __('frontend.airport') }} ({{ $slice['segments'][0]['destination']['iata_code'] ?? 'N/A' }}) @if (isset($slice['segments'][0]['destination_terminal'])) - Terminal {{ $slice['segments'][0]['destination_terminal'] }} @endif
@endforeach

{{ __('frontend.flight_information') }}

{{ __('frontend.airline') }}
{{ $offer['slices'][0]['segments'][0]['operating_carrier']['name'] ?? 'N/A' }}
{{ __('frontend.flight_number') }}
{{ $offer['slices'][0]['segments'][0]['operating_carrier_flight_number'] ?? 'N/A' }}
{{ __('frontend.cabin_class') }}
{{ ucfirst($offer['slices'][0]['passengers'][0]['cabin_class_marketing_name'] ?? 'Economy') }}
{{ __('frontend.checked_baggage') }}
@if (!empty($offer['slices'][0]['passengers'][0]['baggages'])) @foreach ($offer['slices'][0]['passengers'][0]['baggages'] as $baggage) @if ($baggage['type'] === 'checked') {{ $baggage['quantity'] ?? 1 }} bag @endif @endforeach @else N/A @endif
{{ __('frontend.carry_on') }}
@if (!empty($offer['slices'][0]['passengers'][0]['baggages'])) @foreach ($offer['slices'][0]['passengers'][0]['baggages'] as $baggage) @if ($baggage['type'] === 'carry_on') {{ $baggage['quantity'] ?? 1 }} bag @endif @endforeach @else N/A @endif
@if (isset($offer['slices'][0]['segments'][0]['aircraft']['name']))
{{ __('frontend.aircraft') }}
{{ $offer['slices'][0]['segments'][0]['aircraft']['name'] ?? 'N/A' }}
@endif

{{ __('frontend.policies') }}

{{ __('frontend.flight_change_policy') }}

{{ __('frontend.flight_change_policy_desc') }}

{{ __('frontend.order_change_policy') }}

{{ __('frontend.order_change_policy_desc') }}

{{ __('frontend.refund_policy') }}

{{ __('frontend.refund_policy_desc') }}

{{ __('frontend.complete_your_booking') }}

@csrf @php $hold_option = 'No'; if ( isset($offer['payment_requirements']['requires_instant_payment']) && $offer['payment_requirements']['requires_instant_payment'] == false ) { $hold_option = 'Yes'; } @endphp
@php $typeCounters = []; @endphp @foreach ($passengers as $passenger) @php $type = strtolower($passenger['type']); $typeCounters[$type] = ($typeCounters[$type] ?? 0) + 1; $passengerLabel = ucfirst($type) . ' ' . $typeCounters[$type] . ' Information'; @endphp
{{ $passengerLabel }}
@error('passengers.' . $passenger['id'] . '.title')
{{ $message }}
@enderror
@error('passengers.' . $passenger['id'] . '.gender')
{{ $message }}
@enderror
@error('passengers.' . $passenger['id'] . '.given_name')
{{ $message }}
@enderror
@error('passengers.' . $passenger['id'] . '.family_name')
{{ $message }}
@enderror
@error('passengers.' . $passenger['id'] . '.email')
{{ $message }}
@enderror
@php $selectedCode = old( 'passengers.' . $passenger['id'] . '.phonecode', '+92', ); @endphp
@error('passengers.' . $passenger['id'] . '.phone_number')
{{ $message }}
@enderror
@php $maxDob = \Carbon\Carbon::now()->subYears(19)->format('Y-m-d'); @endphp @error('passengers.' . $passenger['id'] . '.born_on')
{{ $message }}
@enderror
@endforeach
@if (!empty($offer['available_services']))

{{ __('frontend.optional_add_ons') }}

@foreach ($offer['available_services'] as $service) @php if ($service['type'] == 'baggage') { $description = 'Allowed Maximum Quantity ' . $service['maximum_quantity'] . ' and allowd Maximum Weight kg ' . $service['metadata']['maximum_weight_kg']; } else { $description = $service['description'] ?? 'No description available'; } $currency = $service['total_currency'] ?? ''; $amount = $service['total_amount'] ?? ''; $type = ucfirst($service['type'] ?? 'Service'); @endphp
{{ $type }}
{{ $description }}
+ {{ $currency }} {{ $amount }}
@endforeach
@endif
{{ __('frontend.cancel') }}

{{ __('frontend.flight_summary') }}

{{ __('frontend.route') }} {{ $offer['slices'][0]['origin']['iata_code'] ?? 'N/A' }} - {{ $offer['slices'][0]['destination']['iata_code'] ?? 'N/A' }}
{{ __('frontend.passengers') }} {{ count($offer['passengers'] ?? []) }} {{ __('frontend.passengers_count') }}
{{ __('frontend.cabin_class') }} {{ ucfirst($offer['slices'][0]['passengers'][0]['cabin_class_marketing_name'] ?? 'Economy') }}
{{ __('frontend.flight_type') }} {{ count($offer['slices']) > 1 ? __('frontend.round_trip') : __('frontend.one_way') }}

{{ __('frontend.price_breakdown') }}

{{ __('frontend.fare_details') }}
@php $baseAmount = $offer['base_amount'] ?? 0; $taxAmount = $offer['tax_amount'] ?? 0; $currency = $offer['total_currency'] ?? 'USD'; $serviceFee = (float) (widget(29)->extra_field_2 ?? 0); $servicePercent = (float) (widget(29)->extra_field_3 ?? 0); $subTotal = $baseAmount + $taxAmount; $servicePercentAmount = ($subTotal * $servicePercent) / 100; $totalServiceAmount = $serviceFee + $servicePercentAmount; $totalWithServiceFee = $subTotal + $totalServiceAmount; @endphp
{{ __('frontend.base_fare') }} {{ $currency }} {{ number_format($baseAmount, 2) }}
{{ __('frontend.taxes_and_fees') }} {{ $currency }} {{ number_format($taxAmount, 2) }}
{{ __('frontend.service_fee') }} {{ $currency }} {{ number_format($totalServiceAmount, 2) }}
{{ __('frontend.total') }} {{ $currency }} {{ number_format($totalWithServiceFee, 2) }}
@endif @endif
@push('scripts') @endpush