@php $ns = ($f['stopsLabel'] ?? '') === 'Non-stop'; $details = $f['details'] ?? []; $seats = $f['seatAvailability'] ?? []; // e.g. ["Adult: 9 seats", "Infant: 9 seats"] $hasReturn = !empty($f['returnLeg']); $ret = $f['returnLeg'] ?? null; $retNs = ($ret['stopsLabel'] ?? '') === 'Non-stop'; /* ── passenger counts from search params ── */ $adults = (int)($SelectedData['room_1_adults'] ?? 1); $children = (int)($SelectedData['room_1_children'] ?? 0); $infants = (int)($SelectedData['infants'] ?? 0); $paxParts = []; if ($adults) $paxParts[] = $adults . ' Adult' . ($adults > 1 ? 's' : ''); if ($children) $paxParts[] = $children . ' Child' . ($children > 1 ? 'ren' : ''); if ($infants) $paxParts[] = $infants . ' Infant' . ($infants > 1 ? 's' : ''); $paxLabel = implode(', ', $paxParts) ?: '1 Adult'; /* ── available ADT seats from API response ── */ $adtSeats = null; foreach ($seats as $sv) { if (stripos($sv, 'adult') !== false) { preg_match('/(\d+)/', $sv, $m); $adtSeats = isset($m[1]) ? (int)$m[1] : null; break; } } /* ── terminal / aircraft / flight-type ── */ $depTerminal = $f['departureTerminal'] ?? ''; $aircraftModel = $f['aircraft'] ?? ''; // e.g. "A320-170" $flightTypeLabel = $f['flightType'] ?? ''; // e.g. "International" /* ── date helper: "MAA · Jul 11" ── */ $fmtD = function($dateStr) { if (!$dateStr) return ''; try { return (new \DateTime($dateStr))->format('M j'); } catch (\Throwable $e) { return ''; } }; $depLabel = ($f['departureAirport'] ?? '') . ($fmtD($f['departureDate'] ?? '') ? ' · ' . $fmtD($f['departureDate'] ?? '') : ''); $arrLabel = ($f['arrivalAirport'] ?? '') . ($fmtD($f['arrivalDate'] ?? '') ? ' · ' . $fmtD($f['arrivalDate'] ?? '') : ''); $retDepLabel = $hasReturn ? (($ret['departureAirport'] ?? '') . ($fmtD($ret['departureDate'] ?? '') ? ' · ' . $fmtD($ret['departureDate'] ?? '') : '')) : ''; $retArrLabel = $hasReturn ? (($ret['arrivalAirport'] ?? '') . ($fmtD($ret['arrivalDate'] ?? '') ? ' · ' . $fmtD($ret['arrivalDate'] ?? '') : '')) : ''; /* ── fare class ── */ $fareClass = match(strtolower($SelectedData['class'] ?? 'economy')) { 'premium_economy' => 'Premium Economy', 'business' => 'Business', 'first' => 'First Class', default => 'economy' }; /* ── raw JSON for drawer ── */ $flightData = [ 'airlineCode' => $f['airlineCode'] ?? '', 'flightNumber' => $f['flightNumber'] ?? '', 'aircraft' => $f['aircraft'] ?? '', 'flightType' => $f['flightType'] ?? '', 'departureTime' => $f['departureTime'] ?? '', 'departureDate' => $f['departureDate'] ?? '', 'departureAirport' => $f['departureAirport'] ?? '', 'departureAirportName' => $f['departureAirportName'] ?? '', 'departureTerminal' => $f['departureTerminal'] ?? '', 'arrivalTime' => $f['arrivalTime'] ?? '', 'arrivalDate' => $f['arrivalDate'] ?? '', 'arrivalAirport' => $f['arrivalAirport'] ?? '', 'arrivalAirportName' => $f['arrivalAirportName'] ?? '', 'arrivalTerminal' => $f['arrivalTerminal'] ?? '', 'duration' => $f['duration'] ?? '', 'stopsLabel' => $f['stopsLabel'] ?? '', 'basePrice' => $f['basePrice'] ?? 0, 'stopDetails' => $f['stopDetails'] ?? [], 'legSegments' => $f['legSegments'] ?? [], ]; $returnFlightData = null; if ($hasReturn) { $returnFlightData = [ 'airlineCode' => $ret['airlineCode'] ?? '', 'flightNumber' => $ret['flightNumber'] ?? '', 'aircraft' => $ret['aircraft'] ?? '', 'flightType' => $ret['flightType'] ?? '', 'departureTime' => $ret['departureTime'] ?? '', 'departureDate' => $ret['departureDate'] ?? '', 'departureAirport' => $ret['departureAirport'] ?? '', 'departureAirportName' => $ret['departureAirportName'] ?? '', 'departureTerminal' => $ret['departureTerminal'] ?? '', 'arrivalTime' => $ret['arrivalTime'] ?? '', 'arrivalDate' => $ret['arrivalDate'] ?? '', 'arrivalAirport' => $ret['arrivalAirport'] ?? '', 'arrivalAirportName' => $ret['arrivalAirportName'] ?? '', 'arrivalTerminal' => $ret['arrivalTerminal'] ?? '', 'duration' => $ret['duration'] ?? '', 'stopsLabel' => $ret['stopsLabel'] ?? '', 'basePrice' => $ret['basePrice'] ?? 0, 'stopDetails' => $ret['stopDetails'] ?? [], 'legSegments' => $ret['legSegments'] ?? [], ]; } $rawJson = htmlspecialchars(json_encode([ 'flight' => $flightData, 'returnFlight' => $returnFlightData, 'segments' => $f['rawSegments'] ?? [], 'bookingClassCodes' => $f['bookingClassCodes'] ?? [], 'searchParams' => $SelectedData, 'isRoundTrip' => $hasReturn, ]), ENT_QUOTES, 'UTF-8'); $outStopInfo = json_encode([ 'legSegments' => $f['legSegments'] ?? [], 'stopDetails' => $f['stopDetails'] ?? [], 'stopsLabel' => $f['stopsLabel'] ?? '', 'departureAirport' => $f['departureAirport'] ?? '', 'arrivalAirport' => $f['arrivalAirport'] ?? '', ]); $retStopInfo = ''; if ($hasReturn) { $retStopInfo = json_encode([ 'legSegments' => $ret['legSegments'] ?? [], 'stopDetails' => $ret['stopDetails'] ?? [], 'stopsLabel' => $ret['stopsLabel'] ?? '', 'departureAirport' => $ret['departureAirport'] ?? '', 'arrivalAirport' => $ret['arrivalAirport'] ?? '', ]); } /* ── price per-person note ── */ $totalPax = $adults + $children; $priceNote = $hasReturn ? 'round trip' : 'per person'; @endphp {{-- ══════════ FLIGHT RESULT CARD ══════════ --}}
{{-- TOP BADGES ROW --}}
@if($cardIndex === 0) Best @endif Flexible ticket upgrade available @if($hasReturn) Round Trip @endif
{{-- CARD BODY: left itinerary + right pricing --}}
{{-- ── LEFT: ITINERARY ── --}}
{{-- OUTBOUND LEG --}}
{{ $f['airlineCode'] ?? '' }}
{{ $f['departureTime'] ?? '--:--' }}
{{ $depLabel }}
@if($ns)
Direct
@else
{{ $f['stopsLabel'] ?? 'Stop' }}
@endif
{{ $f['duration'] ?? '' }}
{{ $f['arrivalTime'] ?? '--:--' }}
{{ $arrLabel }}
{{-- RETURN LEG (round trip) --}} @if($hasReturn)
{{ $ret['airlineCode'] ?? '' }}
{{ $ret['departureTime'] ?? '--:--' }}
{{ $retDepLabel }}
@if($retNs)
Direct
@else
{{ $ret['stopsLabel'] ?? 'Stop' }}
@endif
{{ $ret['duration'] ?? '' }}
{{ $ret['arrivalTime'] ?? '--:--' }}
{{ $retArrLabel }}
@endif {{-- Airline name + pax info footer --}}
{{-- /nw-itin-col --}} {{-- Vertical divider --}}
{{-- ── RIGHT: FARE + PRICE + ACTIONS ── --}}
{{-- Fare class --}}
{{ $fareClass }}
{{-- Price --}}
{{ $f['currency'] ?? 'INR' }} {{ number_format((float)($f['basePrice'] ?? 0)) }}
{{ $priceNote }} @if($totalPax > 1) · {{ $totalPax }} pax @endif
{{-- Action buttons --}}
{{-- /nw-price-col --}}
{{-- /nw-card-body --}}
{{-- /nw-flight-card --}}