@extends('user.layouts.app') @section('css') @endsection @section('content') @php $user = Auth::user(); // Avatar URL and initials fallback $avatarUrl = $user ? route('media.users.avatar', ['user' => $user->id]) : null; $name = $user->name ?? ''; $parts = preg_split('/\s+/', trim($name)); $initials = ''; if ($parts && count($parts)) { $first = mb_substr($parts[0] ?? '', 0, 1); $last = mb_substr(end($parts) ?: '', 0, 1); $initials = trim($first . $last); } // Balance formatting with safe fallback try { $balanceFormatted = formatAmountWithCurrency($user->balance ?? 0, $user->currency ?? null); } catch (\Throwable $e) { $balanceFormatted = number_format((float) ($user->balance ?? 0), 2) . ' ' . ($user->currency->name ?? '' ?: ''); } // Orders count (safe lazy) $ordersCount = method_exists($user, 'orders') ? $user->orders()->count() : 0; // Last login (safe) $lastLoginAt = optional(optional($user)->lastLogin)->login_at; try { $lastLoginText = $lastLoginAt ? formatDateArabic($lastLoginAt) : '—'; } catch (\Throwable $e) { $lastLoginText = $lastLoginAt ? (string) $lastLoginAt : '—'; } // Join date try { $joinDate = $user && $user->created_at ? formatDateArabic($user->created_at) : ''; } catch (\Throwable $e) { $joinDate = $user && $user->created_at ? $user->created_at->format('Y-m-d') : ''; } $isVendor = $user && method_exists($user, 'isVendor') ? $user->isVendor() : false; $isManaged = $user && method_exists($user, 'isManaged') ? $user->isManaged() : false; $has2FA = (bool) ($user->google2fa_enabled ?? false); $hasPin = $user ? $user->has_pin_code ?? $user->hasPinCode() : false; @endphp
{{-- --}}
@if ($avatarUrl) {{ $user->name }} @else {{ $initials }} @endif

{{ $user->name }}

{{ $user->email ?: '—' }} {{ $user->mobile ?: '—' }}

@if (!empty($user->email_verified_at)) البريد موثق @else البريد غير موثق @endif @if ($user->is_verified ?? false) الهوية موثقة @else الهوية غير موثقة @endif @if ($has2FA) 2FA مفعّل @else 2FA غير مفعّل @endif @if ($hasPin) PIN مفعّل @else PIN غير مفعّل @endif @if ($isVendor) تاجر @elseif($isManaged) تابع لتاجر @else مستخدم @endif @if ($joinDate) منذ {{ $joinDate }} @endif
@if (route_exists('profile.edit')) تعديل الملف الشخصي @endif @if (empty($user->email_verified_at) && route_exists('profile.edit')) توثيق البريد @endif @if (!($user->is_verified ?? false) && Route::has('user.verification.create')) توثيق الهوية @endif {{-- @if ($user && !empty($user->support_link)) الدعم الفني @endif @if ($isVendor && !empty($user->manage_link)) لوحة الإدارة @endif --}}
الرصيد
{{ $balanceFormatted }}
@feature('user-levels')
المستوى الحالي
{{ $currentLevelName ?? '—' }}
@endfeature
إجمالي الطلبات
{{ number_format($ordersCount) }}
آخر تسجيل دخول
{{ $lastLoginText }}
@feature('referral-system') @include('user.partials.referral-card') @endfeature @feature('user-levels')

المستويات والامتيازات

{{-- TODO: delete condition after test --}} @if ($user->email == 'aaa15107@gmail.com') @foreach ($levelsWithProgress ?? [] as $item) @php $level = $item['model']; $achieved = $item['achieved']; $progress = $item['progress']; $required = $item['required_points']; $prev_required = $item['prev_required']; $index = $item['index']; $locked = !$achieved && $userPoints < $prev_required; $icon = $level->icon_class ?: 'sparkles'; @endphp
@if ($locked)
أكمل المستوى السابق للوصول
@endif
@svg('lucide-' . $icon, ['width' => 24, 'height' => 24])
{{ $level->name }}
@if ($level->description)
{{ $level->description }}
@endif @if ($level->benefits)
المزايا: {{ $level->benefits }}
@endif
المستوى {{ $index }}
@if ($achieved)
@endif
{{ $achieved ? 'مكتمل' : $progress . '%' }}
{{ number_format(max($userPoints, $prev_required)) }} / {{ number_format($required) }} نقطة
@endforeach @endif
@endfeature
@endsection @section('js') @endsection