@extends('layouts.layout-2') @section('styles') @endsection @section('content') @php $viewerId = (int) auth()->id(); $medals = [1 => '๐Ÿฅ‡', 2 => '๐Ÿฅˆ', 3 => '๐Ÿฅ‰']; $categoryIcons = [ 'recruiters' => '๐Ÿ†', 'new_customer_abos' => '๐ŸŒŸ', 'customer_abo_points' => '๐Ÿ’™', 'customer_abos_total' => 'โญ', 'total_points' => '๐Ÿš€', ]; $formatValue = fn ($value) => number_format((float) $value, floor((float) $value) == (float) $value ? 0 : 1, ',', '.'); $periodOptions = collect($periods)->mapWithKeys(fn (array $period) => [ sprintf('%d-%02d', $period['year'], $period['month']) => HTMLHelper::getMonth($period['month']).' '.$period['year'], ])->all(); $selectedPeriod = $selected ? sprintf('%d-%02d', $selected['year'], $selected['month']) : null; @endphp

{{ __('recognitions.title') }}
@if ($periodOptions !== [])
{{ html()->select('period', $periodOptions, $selectedPeriod)->id('period')->class('custom-select custom-select-sm mr-2')->attribute('onchange', 'this.form.submit()') }}
@endif

@if ($recognitions === null)
{{ __('recognitions.no_months') }}
@else
{{ __('recognitions.hero_kicker') }}

{{ __('recognitions.hero_title', ['month' => HTMLHelper::getMonth($recognitions['month']).' '.$recognitions['year']]) }} ๐Ÿฅณ๐Ÿ’™

{{ __('recognitions.hero_text') }}

@if ($recognitions['is_final']) {{ __('recognitions.status_final', ['date' => $recognitions['frozen_at']?->format('d.m.Y')]) }} @else {{ __('recognitions.status_preliminary', ['date' => $recognitions['freeze_date']->format('d.m.Y')]) }} @endif
@foreach (\App\Services\Team\RecognitionService::CATEGORIES as $category) @php $podium = $recognitions['categories'][$category] ?? []; @endphp
{{ $categoryIcons[$category] }}
{{ __('recognitions.categories.'.$category.'.title') }}
{{ __('recognitions.categories.'.$category.'.description') }}
@forelse ($podium as $place)
@if (isset($medals[$place['place']])) {{ $medals[$place['place']] }} @else {{ $place['place'] }} @endif
@foreach ($place['members'] as $member)
@include('components._avatar', [ 'imageUrl' => $member['profile_image_url'] ?? null, 'firstName' => $member['first_name'], 'lastName' => $member['last_name'], 'size' => 36, ]) {{ $member['first_name'] }} {{ $member['last_name'] }} @if ((int) $member['user_id'] === $viewerId) {{ __('recognitions.self') }} @endif
@endforeach
{{ $formatValue($place['value']) }}
{{ __('recognitions.categories.'.$category.'.unit') }}
@empty
{{ __('recognitions.empty') }}
@endforelse @if ($category === 'recruiters')
{{ __('recognitions.recruiters_min_hint') }}
@endif
@endforeach
@endif
{{ __('recognitions.live_title', ['month' => HTMLHelper::getMonth($live['month']).' '.$live['year']]) }}
{{ __('recognitions.live_text', ['limit' => \App\Services\Team\RecognitionService::LIVE_LIMIT]) }} ยท {{ __('recognitions.live_updated', ['time' => $live['calculated_at']->format('d.m.Y H:i')]) }}
@foreach (\App\Services\Team\RecognitionService::CATEGORIES as $category)
@if (empty($live['categories'][$category]))
{{ __('recognitions.live_empty') }}
@else
@foreach ($live['categories'][$category] as $row) @endforeach
{{ __('recognitions.live_rank') }} {{ __('recognitions.live_name') }} {{ __('recognitions.categories.'.$category.'.unit') }}
{{ $medals[$row['rank']] ?? $row['rank'].'.' }}
@include('components._avatar', [ 'imageUrl' => $row['profile_image_url'] ?? null, 'firstName' => $row['first_name'], 'lastName' => $row['last_name'], 'size' => 32, ]) {{ $row['first_name'] }} {{ $row['last_name'] }} @if ((int) $row['user_id'] === $viewerId) {{ __('recognitions.self') }} @endif
{{ $formatValue($row['value']) }}
@endif
@endforeach
@endsection