@php $live = $attraction->liveStatus; $coaster = $attraction->coaster; $attractionTranslation = $attraction->translations->firstWhere('locale', app()->getLocale()) ?? $attraction->translations->firstWhere('locale', 'en'); $attractionName = $attractionTranslation?->name ?: $attraction->official_name; $liveInsight = $attraction->live_wait_insight ?? []; $liveFresh = (bool) ($liveInsight['is_fresh'] ?? false); $rawLiveStatus = $liveInsight['status'] ?? 'unknown'; $liveStatus = $liveFresh ? $rawLiveStatus : 'unknown'; $liveOpen = in_array($liveStatus, ['open', 'operating'], true); $liveClosed = in_array($liveStatus, ['down', 'closed', 'refurbishment'], true); $displayWait = $liveInsight['display_wait_minutes'] ?? null; $waitKind = $liveInsight['wait_kind'] ?? 'unavailable'; $singleRiderWait = $liveInsight['single_rider_wait_minutes'] ?? null; $catalogueImageUrl = $attraction->catalogue_image_url ?? null; $liveState = $liveOpen ? 'open' : ($liveClosed ? 'closed' : 'unknown'); $liveStatusLabel = match ($liveStatus) { 'open', 'operating' => __('ui.live_status_open'), 'down' => __('ui.live_status_down'), 'closed' => __('ui.live_status_closed'), 'refurbishment' => __('ui.live_status_refurbishment'), default => __('ui.live_status_unknown'), }; $detailUrl = $coaster ? route('coasters.show', $coaster) : route('attractions.show', $attraction); $hasQueueBadges = (bool) $attraction->single_rider_available || filled($attraction->priority_access_name) || $singleRiderWait !== null; @endphp
{{ $coaster ? __('ui.type_coaster') : __('ui.type_attraction') }} {{ $liveStatusLabel }} @if($attraction->zone?->official_name) {{ $attraction->zone->official_name }} @endif {{ $attractionName }} {{ $coaster ? __('ui.coaster_view') : __('ui.attraction_view') }}