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

@include('components.user-sidebar')
@php $flight_bookings = \App\Models\FlightBooking::where('user_id', auth()->user()->id) ->orderBy('created_at', 'desc') ->paginate(9); // 9 bookings per page (3x3 grid) @endphp {{-- General system error --}} @if (session('error'))
{{ __('frontend.error') }}: {{ session('error') }}
@endif {{-- Success message (if needed) --}} @if (session('success'))
{{ session('success') }}
@endif
@if($flight_bookings->count() > 0)
@foreach($flight_bookings as $booking) @php $passengerDetails = is_string($booking->passenger_details) ? json_decode($booking->passenger_details, true) : $booking->passenger_details; $passengers = array_values($passengerDetails ?? []); // Get flight info $flightInfo = json_decode($booking->flight_info, true); $origin = $flightInfo['slices'][0]['origin']['iata_code'] ?? 'N/A'; $destination = $flightInfo['slices'][0]['destination']['iata_code'] ?? 'N/A'; $departureTime = $booking->departure_date ? \Carbon\Carbon::parse($booking->departure_date) : null; $returnTime = $booking->return_date ? \Carbon\Carbon::parse($booking->return_date) : null; // Check if booking is expired $isExpired = !empty($booking->order_expire_at) && \Carbon\Carbon::parse($booking->order_expire_at)->isPast(); @endphp
{{ $booking->airline_name ?? __('frontend.airline') }}
{{ ucfirst($booking->booking_status) }}
@if($booking->booking_status == 'hold' && !empty($booking->order_expire_at)) @if($isExpired)
This booking has expired on {{ \Carbon\Carbon::parse($booking->order_expire_at)->format('M j, Y h:i A') }}
@else
Payment required by {{ \Carbon\Carbon::parse($booking->order_expire_at)->format('M j, Y h:i A') }}
@endif @endif
{{ $origin }}
{{ $flightInfo['slices'][0]['origin']['city_name'] ?? __('frontend.origin') }}
{{ $destination }}
{{ $flightInfo['slices'][0]['destination']['city_name'] ?? __('frontend.destination') }}
{{ __('frontend.departure') }}
{{ $departureTime ? $departureTime->format('M j, Y h:i A') : 'N/A' }}
@if($returnTime)
{{ __('frontend.return') }}
{{ $returnTime->format('M j, Y h:i A') }}
@endif
{{ __('frontend.duration') }}
@if($departureTime && $returnTime) {{ $departureTime->diffForHumans($returnTime, ['parts' => 2]) }} @else N/A @endif
{{ __('frontend.class') }}
{{ ucfirst($flightInfo['slices'][0]['passengers'][0]['cabin_class_marketing_name'] ?? 'Economy') }}
@if(!empty($passengers))
Passengers
@foreach($passengers as $passenger) @php $givenName = $passenger['given_name'] ?? ''; $familyName = $passenger['family_name'] ?? ''; $fullName = trim($givenName . ' ' . $familyName); @endphp {{ $fullName }} @endforeach
@endif
@endforeach
{{ $flight_bookings->links() }}
@else
{{ __('frontend.no_flight_bookings_title') }}

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

@endif