@extends('layouts.app') @section('title', __('ui.group_visit_recap_page_title', ['trip' => $visit->title ?: $visit->park?->official_name]).' โ€” Coaster World') @php $park = $visit->park; $parkTranslation = $park?->translations?->firstWhere('locale', app()->getLocale()) ?? $park?->translations?->firstWhere('locale', 'en'); $parkName = $parkTranslation?->name ?: $park?->official_name; $currentStats = $participantStats->first(fn ($row) => ($row['user']?->id ?? null) === auth()->id()); $attractionName = static function ($attraction): string { if (! $attraction) return 'โ€”'; $translation = $attraction->translations?->firstWhere('locale', app()->getLocale()) ?? $attraction->translations?->firstWhere('locale', 'en'); return $translation?->name ?: $attraction->official_name; }; @endphp @section('content')
โ† {{ __('ui.group_visit_recap_back') }} {{ $isLive ? __('ui.group_visit_recap_live') : __('ui.group_visit_recap_finished') }}
{{ __('ui.group_visit_recap_kicker') }}

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

{{ __('ui.group_visit_recap_intro', ['park' => $parkName, 'group' => $group->name]) }}

{{ $visit->title ?: $parkName }}
๐Ÿ‘ฅ {{ $acceptedMembers->count() }} {{ __('ui.group_visit_recap_participants') }}
๐ŸŽก {{ $rides->count() }} {{ __('ui.group_visit_recap_rides') }}
๐ŸŽข {{ $groupUniqueCoasters }} {{ __('ui.group_visit_recap_unique_coasters') }}
โœจ {{ $newCreditsTotal }} {{ __('ui.group_visit_recap_new_credits') }}
๐Ÿ—“๏ธ {{ $programCompletion }}% {{ __('ui.group_visit_recap_roadbook') }}
@if($currentStats)
{{ __('ui.group_visit_recap_personal_kicker') }}

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

@if($currentStats['team']) {{ $currentStats['team']->emoji }} {{ $currentStats['team']->name }} @endif
{{ $currentStats['rides_count'] }}{{ __('ui.group_visit_recap_rides') }}
{{ $currentStats['unique_attractions_count'] }}{{ __('ui.group_visit_recap_unique_attractions') }}
{{ $currentStats['coasters_count'] }}{{ __('ui.group_visit_recap_coasters') }}
{{ $currentStats['new_credits_count'] }}{{ __('ui.group_visit_recap_new_credits') }}
@if($currentStats['new_credits']->isNotEmpty())
โœจ {{ __('ui.group_visit_recap_your_new_credits') }}
@foreach($currentStats['new_credits'] as $creditRide) ๐ŸŽข {{ $attractionName($creditRide->attraction) }} @endforeach
@endif
@endif
๐Ÿ”ฅ
{{ __('ui.group_visit_recap_highlight') }} @if($mostRidden)

{{ $attractionName($mostRidden['ride']->attraction) }}

{{ trans_choice('ui.group_visit_recap_most_ridden_detail', $mostRidden['count'], ['count' => $mostRidden['count'], 'people' => $mostRidden['people']]) }}

@else

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

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

@endif
โœ…
{{ __('ui.group_visit_recap_roadbook') }}

{{ $programDone }} / {{ $programItems->count() }}

{{ __('ui.group_visit_recap_roadbook_detail', ['done' => $programDone, 'skipped' => $programSkipped, 'percent' => $programCompletion]) }}

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

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

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

@foreach($participantStats as $index => $row) @php $user = $row['user']; $displayName = $user?->username ?: $user?->name ?: $row['membership']->display_name ?: '?'; @endphp
{{ mb_strtoupper(mb_substr($displayName, 0, 1)) }}
{{ $user?->username ? '@'.$user->username : $displayName }} @if($row['team']){{ $row['team']->emoji }} {{ $row['team']->name }}@endif
#{{ $index + 1 }}
{{ $row['rides_count'] }}{{ __('ui.group_visit_recap_rides_short') }}
{{ $row['coasters_count'] }}{{ __('ui.group_visit_recap_coasters_short') }}
{{ $row['new_credits_count'] }}{{ __('ui.group_visit_recap_credits_short') }}
@endforeach
@if($teamStats->isNotEmpty())
{{ __('ui.group_visit_recap_teams_kicker') }}

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

@foreach($teamStats as $row)
{{ $row['team']->emoji }}
{{ $row['team']->name }}{{ trans_choice('ui.group_visit_recap_team_members', $row['members_count'], ['count' => $row['members_count']]) }}
{{ $row['rides_count'] }} {{ __('ui.group_visit_recap_rides_short') }} {{ $row['coasters_count'] }} {{ __('ui.group_visit_recap_coasters_short') }} {{ $row['new_credits_count'] }} โœจ
@endforeach
@endif @if($challengeHighlights->isNotEmpty())
{{ __('ui.group_visit_recap_challenges_kicker') }}

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

@foreach($challengeHighlights as $row) @php($challenge = $row['challenge'])
{{ $challenge->challenge_type === 'coasters' ? '๐ŸŽข' : '๐ŸŽก' }}
{{ $challenge->name }}{{ __('ui.group_visit_recap_challenge_goal', ['target' => $row['target']]) }}
@if($row['winners']->isNotEmpty())
๐Ÿ† {{ trans_choice('ui.group_visit_recap_winners', $row['winners']->count(), ['count' => $row['winners']->count()]) }} {{ $row['winners']->map(fn($p) => $p->user?->username ? '@'.$p->user->username : ($p->user?->name ?: '?'))->join(' ยท ') }}
@elseif($row['leader'])
๐Ÿฅ‡ {{ __('ui.group_visit_recap_best_score') }} {{ $row['leader']->user?->username ? '@'.$row['leader']->user->username : ($row['leader']->user?->name ?: '?') }} ยท {{ $row['best_score'] }}
@else

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

@endif
@endforeach
@endif
@endsection