@extends('layouts.app') @section('title', $roadTrip->title.' β€” Coaster World') @push('head') @endpush @section('content') @php $formatTravelMinutes = static function (int $minutes): string { if ($minutes < 60) { return $minutes.' min'; } $hours = intdiv($minutes, 60); $rest = $minutes % 60; return $rest > 0 ? $hours.' h '.str_pad((string) $rest, 2, '0', STR_PAD_LEFT) : $hours.' h'; }; $transportIcons = [ 'car' => 'πŸš—', 'train' => 'πŸš†', 'plane' => '✈️', 'shuttle' => '🚌', 'other' => '🧭', ]; @endphp
← {{ __('ui.road_trip_back') }}
{{ __('ui.road_trip_status_'.$roadTrip->status) }} {{ trans_choice('ui.road_trip_stop_count', $roadTrip->stops->count(), ['count' => $roadTrip->stops->count()]) }}

{{ $roadTrip->title }}

@if($roadTrip->description)

{{ $roadTrip->description }}

@endif
πŸ“… {{ $roadTrip->starts_on?->format('d/m/Y') ?: __('ui.road_trip_dates_tbd') }}@if($roadTrip->ends_on && $roadTrip->starts_on && !$roadTrip->ends_on->equalTo($roadTrip->starts_on)) β†’ {{ $roadTrip->ends_on->format('d/m/Y') }}@endif πŸ‘€ {{ $roadTrip->owner?->username ?: $roadTrip->owner?->name }} @if($durationDays) 🧳 {{ trans_choice('ui.road_trip_days', $durationDays, ['count' => $durationDays]) }} @endif
@if($canManage)
has('title') || $errors->has('status')) open @endif> {{ __('ui.road_trip_manage') }}
@csrf @method('PUT')
@endif
{{ $uniqueParks }}{{ __('ui.road_trip_stat_parks') }}
{{ $countryCount }}{{ __('ui.road_trip_stat_countries') }}
{{ $acceptedMembers->count() }}{{ __('ui.road_trip_stat_travelers') }}
{{ $completionPercent }}%{{ __('ui.road_trip_stat_progress') }}
{{ $knownLegs > 0 ? 'β‰ˆ '.number_format($tripDistanceKm, 0, ',', ' ') : 'β€”' }}{{ __('ui.road_trip_v2_distance') }}
{{ $knownLegs > 0 ? $formatTravelMinutes($tripTravelMinutes) : 'β€”' }}{{ __('ui.road_trip_v2_travel_time') }}
@if(session('road_trip_status'))
{{ session('road_trip_status') }}
@endif @if($errors->any())
{{ $errors->first() }}
@endif
{{ __('ui.road_trip_v2_planner_kicker') }}

{{ __('ui.road_trip_v2_planner_title') }}

{{ __('ui.road_trip_v2_planner_intro') }}

{{ __('ui.road_trip_v2_mapped_stops', ['mapped' => $mappedStops, 'total' => $roadTrip->stops->count()]) }}
πŸ—ΊοΈ
{{ __('ui.road_trip_v2_map_title') }}{{ __('ui.road_trip_v2_map_help') }}
@if($knownLegs > 0) β‰ˆ {{ number_format($tripDistanceKm, 0, ',', ' ') }} km @endif
@if($routeMapPoints->isNotEmpty())
@else
πŸ“{{ __('ui.road_trip_v2_no_coordinates') }}

{{ __('ui.road_trip_v2_map_unavailable') }}

@endif

{{ __('ui.road_trip_v2_route_disclaimer') }}

πŸ“†
{{ __('ui.road_trip_v2_day_planner') }}{{ __('ui.road_trip_v2_day_planner_help') }}
@if($plannerDays->isEmpty() && $unscheduledStops->isEmpty())
{{ __('ui.road_trip_v2_schedule_empty') }}
@else
@foreach($plannerDays as $day)
{{ __('ui.road_trip_v2_day_number', ['number' => $day['number']]) }} {{ $day['date']->locale(app()->getLocale())->translatedFormat('D d M') }}
@forelse($day['stops'] as $dayStop) @php $dayPt = $dayStop->park?->translations?->firstWhere('locale', app()->getLocale()) ?? $dayStop->park?->translations?->firstWhere('locale', 'en'); @endphp {{ $dayStop->arrival_time ? substr($dayStop->arrival_time, 0, 5) : 'β€’' }} {{ $dayStop->title ?: ($dayPt?->name ?: $dayStop->park?->official_name) }} @empty {{ __('ui.road_trip_v2_day_empty') }} @endforelse
@endforeach @if($unscheduledStops->isNotEmpty()) @endif
@endif
{{ __('ui.road_trip_route_kicker') }}

{{ __('ui.road_trip_route_title') }}

{{ __('ui.road_trip_route_intro') }}

@if($canManage)
has('park_id')) open @endif> + {{ __('ui.road_trip_add_stop') }}
@csrf
πŸš— {{ __('ui.road_trip_v2_transport_section') }}
πŸ›οΈ {{ __('ui.road_trip_v2_lodging_section') }}
@endif
@if($roadTrip->stops->isEmpty())
πŸ“

{{ __('ui.road_trip_no_stops_title') }}

{{ __('ui.road_trip_no_stops_text') }}

@else
@foreach($roadTrip->stops as $index => $stop) @php $pt = $stop->park?->translations?->firstWhere('locale', app()->getLocale()) ?? $stop->park?->translations?->firstWhere('locale', 'en'); $ct = $stop->park?->country?->translations?->firstWhere('locale', app()->getLocale()) ?? $stop->park?->country?->translations?->firstWhere('locale', 'en'); $groupLink = $stop->linkedVisit?->groupLink; $leg = $routeLegs->get($stop->id); $mode = $stop->transport_mode ?: 'car'; @endphp @if($index > 0 && $leg)
{{ $transportIcons[$leg['mode']] ?? '🧭' }}
{{ __('ui.road_trip_v2_transport_'.$leg['mode']) }} @if($leg['distance_km'] !== null) β‰ˆ {{ number_format($leg['distance_km'], 0, ',', ' ') }} km Β· {{ $formatTravelMinutes($leg['duration_minutes']) }} @elseif($leg['duration_minutes'] > 0) {{ $formatTravelMinutes($leg['duration_minutes']) }} @else {{ __('ui.road_trip_v2_leg_unavailable') }} @endif @if($leg['is_override']) Β· {{ __('ui.road_trip_v2_manual_duration') }} @endif @if($stop->travel_notes)

{{ $stop->travel_notes }}

@endif
@endif
{{ $index + 1 }}
{{ __('ui.road_trip_stop_status_'.$stop->status) }}

{{ $stop->title ?: ($pt?->name ?: $stop->park?->official_name) }}

@if($stop->title) {{ $pt?->name ?: $stop->park?->official_name }} @endif
@if($canManage)
@csrf
@csrf
@endif
@if($ct?->name)🌍 {{ $ct->name }}@endif @if($stop->park?->city)πŸ“Œ {{ $stop->park->city }}@endif @if($stop->starts_on)πŸ“… {{ $stop->starts_on->format('d/m/Y') }}@if($stop->ends_on && !$stop->ends_on->equalTo($stop->starts_on)) β†’ {{ $stop->ends_on->format('d/m/Y') }}@endif@endif @if($stop->arrival_time)πŸ• {{ __('ui.road_trip_v2_arrival_short') }} {{ substr($stop->arrival_time, 0, 5) }}@endif @if($stop->departure_time)β†— {{ __('ui.road_trip_v2_departure_short') }} {{ substr($stop->departure_time, 0, 5) }}@endif
@if($stop->notes)

{{ $stop->notes }}

@endif @if($stop->lodging_name || $stop->lodging_notes)
πŸ›οΈ
{{ $stop->lodging_name ?: __('ui.road_trip_v2_lodging') }}@if($stop->lodging_notes)

{{ $stop->lodging_notes }}

@endif
@endif @if($canManage)
{{ __('ui.road_trip_edit_stop') }}
@csrf @method('PUT')
travel_notes || $stop->travel_minutes_override) open @endif> πŸš— {{ __('ui.road_trip_v2_transport_section') }}
lodging_name || $stop->lodging_notes) open @endif> πŸ›οΈ {{ __('ui.road_trip_v2_lodging_section') }}
@csrf @method('DELETE')
@endif
@endforeach
@endif
@endsection @push('scripts') @if($routeMapPoints->isNotEmpty()) @endif @endpush