@extends('layouts.superadmin') @section('title','نظام سقراط — Socratic Sentinel') @section('content') @php $view = request('view','cards'); // cards | table $eval = $evalStats ?? []; $improvers = $eval['top_improvers'] ?? collect(); $decliners = $eval['top_decliners'] ?? collect(); $anomalies = $eval['anomalies'] ?? collect(); $go = $goalsStats ?? []; $goalStuck = $go['stuck'] ?? collect(); $goalForecast = $go['forecast_bad'] ?? collect(); $alertsList = collect($alerts ?? []); @endphp
{{-- Header --}}
غرفة سقراط — مراقبة الأعضاء + إنذارات + تقييمات

غرفة سقراط للمراقبة والتحكم

ديشبورد يركز على الأعضاء (نشاط + غيابات + تقييمات + خطر) — والتقنيات تأتي كقسم ثانوي.

زيارات: {{ number_format($visits ?? 0) }} نشط 7 أيام: {{ number_format($active7 ?? 0) }} نشط 30 يوم: {{ number_format($active30 ?? 0) }} حالات مفتوحة: {{ number_format($incidentsOpen ?? 0) }}
فلترة الفترة
{{ $from }} → {{ $to }}
{{-- Help Drawer --}} @if(session('success'))
{{ session('success') }}
@endif {{-- ========================= SECTION: MEMBERS FIRST ========================= --}} @if($view === 'table')
ملخص الأعضاء والتفاعل
عرض جدولي
المؤشر القيمة
نشط 7 أيام {{ number_format($active7 ?? 0) }}
نشط 30 يوم {{ number_format($active30 ?? 0) }}
زيارات خلال الفترة {{ number_format($visits ?? 0) }}
مستخدمون فريدون {{ number_format($uniqueUsers ?? 0) }}
متوسط التقييم الحالي {{ $eval['overall_avg_current'] ?? 0 }}
التغير الأسبوعي % {{ $eval['overall_change_pct'] ?? 0 }}%
أعضاء خطر (غياب + نزول تقييم) {{ number_format(($riskMembers ?? collect())->count()) }}
تنبيهات {{ number_format($alertsList->count()) }}
@else {{-- Cards KPIs --}}
نشط 7 أيام
{{ number_format($active7 ?? 0) }}
نشط 30 يوم
{{ number_format($active30 ?? 0) }}
الزيارات
{{ number_format($visits ?? 0) }}
أعضاء خطر
{{ number_format(($riskMembers ?? collect())->count()) }}
{{-- Weekly evaluation summary --}}
ملخص التقييم (WoW)
أسبوع بأسبوع
متوسط الحالي
{{ $eval['overall_avg_current'] ?? 0 }}
متوسط السابق
{{ $eval['overall_avg_prev'] ?? 0 }}
التغير
drop: {{ $dropThreshold ?? 15 }}%
{{ $eval['overall_change_pct'] ?? 0 }}%
تنبيهات
{{ $alertsList->count() }} عنصر
@forelse($alertsList as $a) @php $sev = $a['severity'] ?? 'low'; $sevCls = $sev === 'high' ? 'border-rose-400/25 bg-rose-500/10 text-rose-200' : ($sev === 'medium' ? 'border-amber-400/25 bg-amber-500/10 text-amber-200' : 'border-white/10 bg-white/5 text-white/80'); @endphp
{{ $a['title'] ?? 'تنبيه' }}
{{ $sev }}
{{ $a['text'] ?? '' }}
@empty
لا يوجد تنبيهات حالياً ✅
@endforelse
@endif {{-- ========================= TABLES: MEMBERS DATA ========================= --}}
{{-- Top Absences --}}
الأكثر غيابًا (30 يوم)
حسب absences
@forelse(($topAbsences ?? collect()) as $r)
{{ $r->name ?? ('#'.$r->user_id) }}
ID: {{ $r->user_id }}
{{ (int)($r->c ?? 0) }}
@empty
لا يوجد بيانات غياب.
@endforelse
{{-- Top Improvers --}}
أعلى تحسّن (WoW)
score_records / evaluations
@forelse($improvers as $r)
{{ $r->name ?? ('#'.$r->user_id) }}
{{ $r->prev_avg }} → {{ $r->cur_avg }} (n {{ $r->prev_n }} → {{ $r->cur_n }})
+{{ $r->change_pct }}%
@empty
لا يوجد بيانات تحسّن.
@endforelse
{{-- Top Decliners --}}
أعلى تراجع (WoW)
drop threshold: {{ $dropThreshold ?? 15 }}%
@forelse($decliners as $r)
{{ $r->name ?? ('#'.$r->user_id) }}
{{ $r->prev_avg }} → {{ $r->cur_avg }} (n {{ $r->prev_n }} → {{ $r->cur_n }})
{{ $r->change_pct }}%
@empty
لا يوجد بيانات تراجع.
@endforelse
{{-- Risk Members --}}
أعضاء خطر
غياب (14 يوم) + نزول تقييم (≤ -10%)
{{ number_format(($riskMembers ?? collect())->count()) }} عضو
@forelse(($riskMembers ?? collect()) as $r) @empty @endforelse
العضو الغيابات التغير % الحالي السابق
{{ $r->name ?? ('#'.$r->user_id) }} {{ (int)($r->abs_c ?? 0) }} {{ $r->change_pct }}% {{ $r->cur_avg }} {{ $r->prev_avg }}
لا يوجد أعضاء خطر.
{{-- Goals --}}
الأهداف
goals
مفتوحة
{{ $go['open'] ?? 0 }}
مكتملة
{{ $go['completed'] ?? 0 }}
متأخرة
{{ $go['late'] ?? 0 }}
نسبة إنجاز
{{ $go['completion_rate'] ?? 0 }}%
أهداف متعثرة
stuck (updated_at & progress)
@forelse($goalStuck as $g)
{{ $g->title ?? ('#'.$g->id) }}
تقدم: {{ $g->progress_percent ?? 0 }}% — آخر تحديث: {{ $g->updated_at ?? '' }}
@empty
لا يوجد أهداف متعثرة.
@endforelse
توقع تأخير
forecast_bad
@forelse($goalForecast as $g)
{{ $g->title ?? ('#'.$g->id) }}
إنجاز: {{ $g->progress_percent ?? 0 }}% — زمن: {{ $g->time_percent ?? 0 }}%
@empty
لا يوجد توقعات تأخير.
@endforelse
{{-- ========================= SECONDARY: TECH / AUDIT ========================= --}}
تحليل الأجهزة والمتصفحات (ثانوي)
tracking
الأجهزة
المتصفحات
نصائح وتحليلات (ثانوي)
AI Notes
@foreach(($ai ?? []) as $card)
{{ $card['title'] }}
قوة {{ $card['score'] }}
{{ $card['text'] }}
@endforeach
{{-- Top Routes --}}
أكثر المسارات استخدامًا (Audit)
أين تركز الإدارة أكثر
العرض:
@foreach(($topRoutes ?? []) as $r)
{{ $r->k }}
{{ number_format($r->c) }}
@endforeach
@endsection