@extends('student.layouts.app') @php $isAr = app()->getLocale() === 'ar'; $statusLabels = [ 'pending' => $isAr ? 'قيد المراجعة' : 'Pending', 'approved' => $isAr ? 'معتمد' : 'Approved', 'rejected' => $isAr ? 'مرفوض' : 'Rejected', 'fulfilled' => $isAr ? 'تم التسليم' : 'Fulfilled', ]; $statusColors = [ 'pending' => 'bg-amber-100 text-amber-700 dark:bg-amber-500/20 dark:text-amber-400', 'approved' => 'bg-sky-100 text-sky-700 dark:bg-sky-500/20 dark:text-sky-400', 'rejected' => 'bg-red-100 text-red-700 dark:bg-red-500/20 dark:text-red-400', 'fulfilled' => 'bg-emerald-100 text-emerald-700 dark:bg-emerald-500/20 dark:text-emerald-400', ]; @endphp @section('title', $isAr ? 'النقاط والمكافآت' : 'Points & Rewards') @section('content')
{{-- Header --}}

{{ $isAr ? 'مركز التقدير' : 'Recognition Center' }}

{{ $isAr ? 'نقاطك وأوسمتك' : 'Points & Badges' }}

{{ $isAr ? 'استمر في التميز، اجمع النقاط واستبدلها بمكافآت.' : 'Keep excelling, collect points and redeem them for rewards.' }}

{{ $isAr ? 'رصيدك' : 'Balance' }}

{{ number_format($student->points_balance) }}

{{ $isAr ? 'نقطة' : 'pts' }}

{{ $isAr ? 'الأوسمة' : 'Badges' }}

{{ $student->badges->count() }}

{{ $isAr ? 'وسام' : 'earned' }}

{{-- Left: Rewards + History --}}
{{-- Available Rewards --}}

{{ $isAr ? 'المكافآت المتاحة' : 'Available Rewards' }}

{{ $rewards->count() }}
@if($rewards->isEmpty())

{{ $isAr ? 'لا توجد مكافآت متاحة حالياً' : 'No rewards available yet' }}

@else
@foreach($rewards as $reward) @php $outOfStock = !is_null($reward->quantity) && $reward->reserved_count >= $reward->quantity; $canRedeem = $student->points_balance >= $reward->points_cost && !$outOfStock; $remaining = is_null($reward->quantity) ? '∞' : max(0, $reward->quantity - $reward->reserved_count); @endphp
🎁

{{ number_format($reward->points_cost) }}

{{ $isAr ? 'نقطة' : 'pts' }}

{{ $reward->name }}

@if($reward->description)

{{ $reward->description }}

@endif
{{ $isAr ? 'المتبقي:' : 'Left:' }} {{ $remaining }}
@csrf
@endforeach
@endif
{{-- Points History --}}

{{ $isAr ? 'سجل النقاط' : 'Points Log' }}

{{ $isAr ? 'السجل الكامل' : 'Full log' }} →
@forelse($transactions as $tx)

{{ str_replace('_', ' ', $tx->action_key) }}

{{ optional($tx->awarded_at)->diffForHumans() }}

{{ $tx->points >= 0 ? '+' : '' }}{{ $tx->points }}
@empty
{{ $isAr ? 'لا توجد معاملات بعد' : 'No transactions yet' }}
@endforelse
{{-- Right: Leaderboard + Badges + Redemptions --}}
{{-- Leaderboard --}}

{{ $isAr ? 'المتصدرون' : 'Leaderboard' }}

@foreach($topStudents as $i => $s) @php $isMe = $s->id === auth()->id(); @endphp
@if($i === 0) 🥇 @elseif($i === 1) 🥈 @elseif($i === 2) 🥉 @else #{{ $i+1 }} @endif

{{ $isMe ? $s->name : explode(' ', trim($s->name))[0] }} @if($isMe) ({{ $isAr ? 'أنت' : 'You' }})@endif

{{ number_format((int)($s->point_transactions_sum_points ?? 0)) }}
@endforeach
{{-- Badges --}}

{{ $isAr ? 'أوسمتك' : 'Your Badges' }}

@if($student->badges->isEmpty())

{{ $isAr ? 'لا يوجد أوسمة بعد' : 'No badges yet' }}

@else
@foreach($student->badges as $badge)

{{ $badge->name }}

@endforeach
@endif
{{-- Redemption Requests --}} @if($student->rewardRedemptions->isNotEmpty())

{{ $isAr ? 'طلباتك' : 'Your Requests' }}

@foreach($student->rewardRedemptions->take(5) as $r)

{{ $r->reward?->name }}

{{ $r->points_cost }} {{ $isAr ? 'نقطة' : 'pts' }}

{{ $statusLabels[$r->status] ?? $r->status }}
@endforeach
@endif
@endsection