{{-- resources/views/advisor/dashboard/index.blade.php --}} @extends('layouts.advisor') @section('title', 'لوحة تحكم مستشار التيم') @section('page-title', 'لوحة التحكم الرئيسية') @section('content')
{{-- Header Section --}}
{{-- خلفية خفيفة --}}
{{-- الصف الأعلى: صورة + ترحيب --}}
{{-- صورة العضو + النص --}}
{{ auth()->user()->name }}

مشرف / الإدارة العليا

مرحباً {{ auth()->user()->name }}

هنا تراقب صحة المنظومة، التزام الأعضاء، وملفات الإدارة داخل جيش الوفاء الذهبي .

{{ now()->locale('ar')->isoFormat('dddd D MMMM YYYY') }}

{{-- حالة المستشار + آخر تسجيل دخول --}}
وضع المستشار مفعّل
آخر تسجيل دخول: {{ auth()->user()->last_activity ? auth()->user()->last_activity->diffForHumans() : 'لأول مرة' }}
{{-- الإحصائيات (نفس ستايل الصورة: ٤ مربعات ٢×٢) --}} @if(isset($stats))
{{-- إجمالي المستخدمين --}}

إجمالي المستخدمين

{{ $stats['total_users'] ?? 0 }}
{{-- الأعضاء الرسميين --}}

الأعضاء الرسميين

{{ $stats['official_members'] ?? 0 }}
{{-- المتواجدون الآن --}}

المتواجدون الآن

{{ $stats['online_users'] ?? 0 }}
{{-- أعضاء بيتا --}}

أعضاء بيتا

{{ $stats['beta_members'] ?? 0 }}
@endif
{{-- ===== كارد هدفي الشخصي (بدون كنترول) ===== --}} @php $tz = config('app.timezone', 'Asia/Jerusalem'); $me = auth()->user(); // الفترة: هذا الشهر $from = now($tz)->startOfMonth()->toDateString(); $to = now($tz)->toDateString(); // أهداف $goalMix = 50; // لايف + قست $goalSahra = 5; // سهرة // لايفات + سهرات $liveRow = \Illuminate\Support\Facades\DB::table('live_streams') ->whereNull('deleted_at') ->where('user_id', $me->id) ->where('status', 'confirmed') ->whereBetween('scheduled_date', [$from, $to]) ->selectRaw(' SUM(CASE WHEN is_sahra=1 THEN (COALESCE(duration_hours,0)*60 + COALESCE(duration_minutes,0)) ELSE 0 END) as sahra_minutes, SUM(CASE WHEN is_sahra=0 OR is_sahra IS NULL THEN (COALESCE(duration_hours,0)*60 + COALESCE(duration_minutes,0)) ELSE 0 END) as live_minutes ') ->first(); // قستات $guestRow = \Illuminate\Support\Facades\DB::table('score_records') ->where('source_type', 'guest') ->where('user_id', $me->id) ->whereBetween('recorded_date', [$from, $to]) ->selectRaw('COALESCE(SUM(hours),0) as guest_hours') ->first(); $liveHours = round(((int)($liveRow->live_minutes ?? 0)) / 60, 2); $sahraHours = round(((int)($liveRow->sahra_minutes ?? 0)) / 60, 2); $guestHours = round((float)($guestRow->guest_hours ?? 0), 2); $mixHours = round($liveHours + $guestHours, 2); $totalHours = round($mixHours + $sahraHours, 2); $pctMix = $goalMix > 0 ? round(min(100, ($mixHours / $goalMix) * 100), 1) : 0; $pctSahra = $goalSahra > 0 ? round(min(100, ($sahraHours / $goalSahra) * 100), 1) : 0; $status = ($pctMix >= 100 && $pctSahra >= 100) ? 'ممتاز' : (($pctMix >= 70 || $pctSahra >= 70) ? 'جيد' : (($pctMix >= 40 || $pctSahra >= 40) ? 'متوسط' : 'متأخر')); $aiText = match ($status) { 'ممتاز' => 'أداء قوي جدًا، استمر على نفس الوتيرة وثبّت الإنجاز.', 'جيد' => 'قريب من الهدف—دفعة بسيطة وتوصل.', 'متوسط' => 'الأداء مقبول، ركّز على لايفات أو قستات أكثر.', default => 'الهدف متأخر—ابدأ بخطة: قستات قصيرة يومية + لايف ثابت.', }; $badgeCls = match ($status) { 'ممتاز' => 'bg-emerald-500/15 border-emerald-500/30 text-emerald-700 dark:text-emerald-200', 'جيد' => 'bg-sky-500/15 border-sky-500/30 text-sky-700 dark:text-sky-200', 'متوسط' => 'bg-amber-500/15 border-amber-500/30 text-amber-700 dark:text-amber-200', default => 'bg-rose-500/15 border-rose-500/30 text-rose-700 dark:text-rose-200', }; $barMix = max(0, min(100, $pctMix)); $barSah = max(0, min(100, $pctSahra)); @endphp
🎯 هدفي هذا الشهر
الهدف: 50س (لايف + قست) • (سهرة)
{{ $status }}
لايف + قست
{{ $pctMix }}%
لايف: {{ $liveHours }}س • قست: {{ $guestHours }}س • مجموع: {{ $mixHours }}س
سهرة
{{ $pctSahra }}%
ساعات السهرة: {{ $sahraHours }}س
{{ $aiText }}
إجمالي الشهر حتى الآن: {{ $totalHours }}س
{{-- الصف الأول: رسائل الإدارة + معدل الاختبارات --}}
{{-- رسائل الإدارة --}}

رسائل الإدارة

آخر التوجيهات والتنبيهات الهامّة لك كمستشار في نظام الوفاء الذهبي.

{{-- سيكشن معدل الاختبارات للعضو --}} @if(isset($testGauge))
{{-- عنوان السيكشن --}}

معدل التزامك بالاختبارات

يوضّح مستوى مشاركتك ونجاحك في اختبارات نظام الوفاء الذهبي.

{{-- الكرت الرئيسي --}}
{{-- الجيج الدائري --}}
@php $p = max(0, min(100, $testGauge->success_rate ?? 0)); @endphp {{-- الخلفية --}} {{-- الجيج الملون --}} {{-- النص في الوسط --}}
معدل الاختبارات {{ $p }}% ناجح في {{ $testGauge->passed_tests }}/{{ $testGauge->total_tests }} اختبار
{{-- النص التحفيزي --}}

مستوى التزامك بالاختبارات

هذا المعدّل يمثّل نسبة الاختبارات التي نجحت فيها من كل الاختبارات التي شاركت بها. كل ما ارتفع المعدّل، زادت فرصتك بالحصول على هدايا وتحفيزات خاصة من القائد سيف الوفاء والصقر في الفترات القادمة.

@if($testGauge->total_tests === 0)

لم تشارك بأي اختبار بعد. أول ما تبدأ تحل الاختبارات، رح يظهر معدل التزامك هنا.

@elseif($p < 60)

معدلّك حالياً منخفض شوي… حاول تحل الاختبارات القادمة بتركيز أعلى عشان ترفع نسبتك 💪

@elseif($p >= 60 && $p < 85)

أداء جيّد 👏 كم اختبار ناجح زيادة وبتصير من المميّزين اللي لهم أولوية في الهدايا.

@else

مستوى أسطوري 🔥 انت من نخبة الملتزمين، ترقّب مفاجآت خاصة من القيادة.

@endif
@endif
@push('scripts') {{-- Encrypted Access Token --}} @endpush @php $enableMemberCareWidget = ($showMemberCareWidget ?? true) && isset($memberCareWidgetCases) && $memberCareWidgetCases->isNotEmpty(); @endphp @if($enableMemberCareWidget)
{{-- عنوان + شرح --}}

أعضاء يحتاجون متابعة — المستشار إشارات متابعة حيّة

هذه القائمة تُظهر الأعضاء الذين تم وضعهم تحت المراقبة أو يحتاجون اهتمام في نظام ملفات المتابعة — حتى ما يضيع ولا عضو بين الزحام.

{{-- سلايدر أفقي بسيط (scroll-snap) --}}
@endif {{-- رسالة القائد --}} @if(isset($message) && $message)
{{-- خلفية مؤثرة --}}
{{-- المحتوى --}}
{{-- عنوان رسمي --}}

📜 {{ $message->title }}

{{-- خط فاصل ذهبي --}}
{{-- نص الرسالة --}}

{!! nl2br(e($message->body)) !!}

{{-- ختم القيادة --}}
قيادة جيش الوفاء الذهبي
آخر تحديث: {{ $message->updated_at->diffForHumans() }}
{{-- تأثير متحرك جانبي --}}
@endif {{-- Stats Cards Grid - النصائح --}}
{{-- Total Tips Card --}}

إجمالي النصائح

{{ $stats['total_tips'] }}

{{ $stats['active_tips'] }} نصيحة نشطة
{{-- Active Tips Card --}}

النصائح النشطة

{{ $stats['active_tips'] }}

{{ round(($stats['active_tips'] / ($stats['total_tips'] ?: 1)) * 100) }}% من إجمالي النصائح
{{-- Total Members Card - لون بنفسجي --}}

إجمالي الأعضاء

{{ $stats['total_users'] }}

{{ $stats['online_users'] }} متصل الآن
{{-- Secondary Stats Row --}} {{-- Charts Row --}}
{{-- Gender Distribution Chart --}}

توزيع الأعضاء حسب الجنس

{{ $genderStats['male_count'] }}
ذكور ({{ $genderStats['male_percentage'] }}%)
{{ $genderStats['female_count'] }}
إناث ({{ $genderStats['female_percentage'] }}%)
{{-- Membership Distribution Chart --}}

توزيع العضويات

{{ $membershipStats['official'] }}
أعضاء رسميين
{{ $membershipStats['beta'] }}
أعضاء بيتا
@push('scripts') @endpush {{-- Top Members Row --}}
{{-- Top Males --}}

أفضل 3 أعضاء (ذكور)

@forelse($topMales as $index => $member)
{{ $member->name }} {{ $index + 1 }}

{{ $member->name }}

{{ $member->role_name }}

{{ number_format($member->total_points) }}

نقطة

@empty

لا توجد بيانات

@endforelse
{{-- Top Females --}}

أفضل 3 أعضاء (إناث)

@forelse($topFemales as $index => $member)
{{ $member->name }} {{ $index + 1 }}

{{ $member->name }}

{{ $member->role_name }}

{{ number_format($member->total_points) }}

نقطة

@empty

لا توجد بيانات

@endforelse
{{-- Recent Tips Section --}}
{{-- Header Section --}}

أحدث النصائح

@if(isset($stats['total_tips']) && $stats['total_tips'] > 0)

{{ $stats['total_tips'] }} نصيحة متاحة

@endif
إدارة
{{-- Tips Container --}}
@forelse($recent_tips as $tip)
{{-- Colored Side Indicator --}}
{{-- Content Wrapper --}}
{{-- Header Row --}}
{{-- Icon --}}
@if($tip->type === 'mandatory') @elseif($tip->type === 'general') @else @endif
{{-- Title & Content --}}

{{ $tip->title }}

{{ Str::limit(strip_tags($tip->content), 180) }}

{{-- Type Badge --}} @if($tip->type === 'mandatory') إجبارية @elseif($tip->type === 'general') عامة @else مستهدفة @endif
{{-- Divider --}}
{{-- Footer Row --}}
{{-- Time --}}
{{ $tip->created_at->diffForHumans() }}
{{-- Status Badges --}}
@if($tip->is_read) مقروءة @endif @if($tip->is_active) نشطة @else معطلة @endif
@empty

لا توجد نصائح بعد

ابدأ بإضافة أول نصيحة لمساعدة الأعضاء

إضافة نصيحة جديدة
@endforelse
{{-- Hidden container for extra tips --}} {{-- Toggle Button --}} @if(isset($stats['total_tips']) && $stats['total_tips'] > 3)
@endif
@push('styles') @endpush @push('scripts') @endpush
{{-- Recent Activities Section --}}

الأنشطة الأخيرة

@forelse($recentActivities as $activity)
@if($activity['icon'] === 'evaluation')
@elseif($activity['icon'] === 'user')
@elseif($activity['icon'] === 'tip')
@else
@endif

{{ $activity['message'] }}

{{ $activity['time'] }}

@empty

لا توجد أنشطة حديثة

@endforelse
@endsection @push('scripts') @endpush