@extends('layouts.superadmin') @section('title', 'لوحة تحكم الإدارة العليا') @section('page-title', 'لوحة التحكم الرئيسية') @section('content') @php use Illuminate\Support\Facades\DB; use Carbon\Carbon; $user = auth()->user(); $enableMemberCareWidget = ($showMemberCareWidget ?? true) && isset($memberCareWidgetCases) && $memberCareWidgetCases->isNotEmpty(); $latestFalconNotes = DB::table('falcon_rola_notes')->orderBy('created_at', 'desc')->limit(3)->get(); $tz = config('app.timezone', 'Asia/Jerusalem'); $next = $nextSchedule ?? null; if ($next) { $title = $next->event_title ?? 'فعالية ProActive القادمة'; $type = $next->event_type ?? 'regular'; // regular|plus $typeTxt = $type === 'plus' ? '+Plus' : 'عادية'; $date = Carbon::parse($next->event_date, $tz); $dateStr = $date->format('Y-m-d'); $dayName = $date->locale('ar')->dayName; $hostName = $next->leader_name ?? '—'; $isToday = $date->isToday(); } else { $title = 'فعالية ProActive القادمة'; $type = 'regular'; $typeTxt = 'عادية'; $dateStr = '—'; $dayName = '—'; $hostName = '—'; $isToday = false; } @endphp {{-- =================== Taateer Expiry Alerts Widget =================== --}} @if(isset($taateerExpiryWidget) && $taateerExpiryWidget) @php $tw = $taateerExpiryWidget; $danger = $tw['danger'] ?? collect(); // <= 24h (إنذار) $warning = $tw['warning'] ?? collect(); // <= 48h (تنبيه) $expired = $tw['expired'] ?? collect(); // منتهي $safe = $tw['safe'] ?? collect(); // بأمان $counts = $tw['counts'] ?? ['danger'=>0,'warning'=>0,'expired'=>0,'safe'=>0,'needs_action'=>0]; $rb = $tw['roleBreakdown'] ?? ['admin'=>0,'supervisor'=>0,'member'=>0]; $hasDanger = ($counts['danger'] ?? 0) > 0 || ($counts['expired'] ?? 0) > 0; $tzDash = config('app.timezone','Asia/Jerusalem'); $taateerRoute = \Illuminate\Support\Facades\Route::has('superadmin.taateer.index') ? route('superadmin.taateer.index') : '#'; @endphp {{-- ========================= ✅ Ramadan Epic Competition Boards (Only #9/#10) ✅ No "use" anywhere ✅ Collapsible + Member/Guest + Today/Total + Yesterday Champion 👑 under name ========================= --}} @php $tz = config('app.timezone', 'Asia/Jerusalem'); $today = \Carbon\Carbon::now($tz)->toDateString(); $yesterday = \Carbon\Carbon::now($tz)->subDay()->toDateString(); $scoreTable = 'ramadan_competition_score_events'; $seasonTable = 'ramadan_seasons'; $linksTable = 'ramadan_competition_links'; $competitionsTable = 'competitions'; $visitorsTable = 'ramadan_visitors'; $usersTable = 'users'; $seasonId = null; if (\Illuminate\Support\Facades\Schema::hasTable($seasonTable)) { $seasonId = \Illuminate\Support\Facades\DB::table($seasonTable) ->where('is_active', 1)->orderByDesc('id')->value('id'); } $scoreOk = \Illuminate\Support\Facades\Schema::hasTable($scoreTable); $pkey = function ($type, $uid, $vid) { $type = ($type === 'visitor') ? 'visitor' : 'user'; return $type === 'visitor' ? ('v:' . (int)$vid) : ('u:' . (int)$uid); }; $userName = function ($u) { if (!$u) return 'عضو'; $name = trim((string)($u->name ?? '')); if ($name !== '') return $name; $un = trim((string)($u->username ?? '')); if ($un !== '') return '@' . $un; $email = trim((string)($u->email ?? '')); if ($email !== '') return $email; $id = (int)($u->id ?? 0); return $id > 0 ? ('User#' . $id) : 'عضو'; }; $visitorName = function ($v) { if (!$v) return 'ضيف'; $name = trim((string)($v->name ?? '')); if ($name !== '') return $name; $id = (int)($v->id ?? 0); return $id > 0 ? ('Visitor#' . $id) : 'ضيف'; }; $epicBoards = collect(); $epicError = null; if (!$seasonId) { $epicError = 'لا يوجد موسم رمضان فعّال حالياً.'; } elseif (!\Illuminate\Support\Facades\Schema::hasTable($linksTable) || !\Illuminate\Support\Facades\Schema::hasTable($competitionsTable)) { $epicError = 'جداول ربط مسابقات رمضان غير موجودة.'; } else { $comps = \Illuminate\Support\Facades\DB::table($linksTable.' as l') ->join($competitionsTable.' as c', 'c.id', '=', 'l.competition_id') ->where('l.season_id', $seasonId) ->whereIn('c.id', [9,10]) // ✅ فقط 9 أو 10 ->select('c.id','c.title','c.status') ->orderByDesc('c.id') ->get(); $compIds = []; foreach ($comps as $c) { $compIds[] = (int)$c->id; } if (empty($compIds)) { $epicError = 'لا توجد مسابقات مرتبطة برمضان (9 أو 10).'; } elseif (!$scoreOk) { $epicError = 'جدول نقاط رمضان غير موجود: '.$scoreTable; } else { $agg = \Illuminate\Support\Facades\DB::table($scoreTable) ->where('season_id', $seasonId) ->whereIn('competition_id', $compIds) ->select('competition_id','participant_type','user_id','visitor_id') ->selectRaw('SUM(points) as total_points') ->selectRaw('SUM(CASE WHEN event_date = ? THEN points ELSE 0 END) as today_points', [$today]) ->groupBy('competition_id','participant_type','user_id','visitor_id') ->get(); $yAgg = \Illuminate\Support\Facades\DB::table($scoreTable) ->where('season_id', $seasonId) ->whereIn('competition_id', $compIds) ->where('event_date', $yesterday) ->select('competition_id','participant_type','user_id','visitor_id') ->selectRaw('SUM(points) as pts') ->groupBy('competition_id','participant_type','user_id','visitor_id') ->get(); $yMaxByComp = []; foreach ($yAgg as $r) { $cid = (int)$r->competition_id; $pts = (int)($r->pts ?? 0); if (!isset($yMaxByComp[$cid]) || $pts > $yMaxByComp[$cid]) $yMaxByComp[$cid] = $pts; } $yChampKeys = []; foreach ($yAgg as $r) { $cid = (int)$r->competition_id; $pts = (int)($r->pts ?? 0); $max = (int)($yMaxByComp[$cid] ?? 0); if ($max <= 0) continue; if ($pts === $max) { $key = $pkey((string)($r->participant_type ?? 'user'), (int)($r->user_id ?? 0), (int)($r->visitor_id ?? 0)); if (!isset($yChampKeys[$cid])) $yChampKeys[$cid] = []; $yChampKeys[$cid][$key] = true; } } $userIds = []; $visitorIds = []; foreach ($agg as $r) { $type = (string)($r->participant_type ?? 'user'); if ($type === 'visitor') { $vid = (int)($r->visitor_id ?? 0); if ($vid > 0) $visitorIds[$vid] = true; } else { $uid = (int)($r->user_id ?? 0); if ($uid > 0) $userIds[$uid] = true; } } $usersMap = collect(); if (!empty($userIds) && \Illuminate\Support\Facades\Schema::hasTable($usersTable)) { $usersMap = \Illuminate\Support\Facades\DB::table($usersTable) ->whereIn('id', array_keys($userIds)) ->select('id','name','username','email','avatar') ->get()->keyBy('id'); } $visitorsMap = collect(); if (!empty($visitorIds) && \Illuminate\Support\Facades\Schema::hasTable($visitorsTable)) { $visitorsMap = \Illuminate\Support\Facades\DB::table($visitorsTable) ->whereIn('id', array_keys($visitorIds)) ->select('id','name') ->get()->keyBy('id'); } $byComp = []; foreach ($agg as $r) { $cid = (int)$r->competition_id; $type = (string)($r->participant_type ?? 'user'); $uid = (int)($r->user_id ?? 0); $vid = (int)($r->visitor_id ?? 0); $key = $pkey($type, $uid, $vid); $name = ($type === 'visitor') ? $visitorName($visitorsMap->get($vid)) : $userName($usersMap->get($uid)); $todayPts = (int)($r->today_points ?? 0); $totalPts = (int)($r->total_points ?? 0); $isChamp = isset($yChampKeys[$cid]) && isset($yChampKeys[$cid][$key]); if (!isset($byComp[$cid])) $byComp[$cid] = []; $byComp[$cid][] = [ 'name' => $name, 'type_label' => ($type === 'visitor') ? 'ضيف' : 'عضو', 'today_points' => $todayPts, 'total_points' => $totalPts, 'is_yesterday_champion' => $isChamp, ]; } $out = []; foreach ($comps as $c) { $cid = (int)$c->id; $list = $byComp[$cid] ?? []; usort($list, function ($a, $b) { if ((int)$a['today_points'] === (int)$b['today_points']) { if ((int)$a['total_points'] === (int)$b['total_points']) { return strcmp((string)$a['name'], (string)$b['name']); } return ((int)$b['total_points'] <=> (int)$a['total_points']); } return ((int)$b['today_points'] <=> (int)$a['today_points']); }); $sumToday = 0; $sumTotal = 0; foreach ($list as $p) { $sumToday += (int)$p['today_points']; $sumTotal += (int)$p['total_points']; } $out[] = [ 'competition' => $c, 'totals' => [ 'participants' => count($list), 'today_points' => $sumToday, 'total_points' => $sumTotal, ], 'participants' => $list, ]; } $epicBoards = collect($out); } } @endphp {{-- ✅ قسم ملحمي — مسابقات #9/#10 --}}
قسم ملحمي: المشاركون في مسابقات رمضان ونقاطهم
اضغط على اسم المسابقة لعرض المشاركين
يعرض: نوع المشارك (عضو/ضيف) + نقاط اليوم + النقاط الكلية.
👑 بطل الأمس يظهر تحت الاسم مباشرة.
اليوم: {{ $today }} الأمس: {{ $yesterday }} فقط: #9 / #10
@if($epicError)
تنبيه
{{ $epicError }}
@else
@foreach($epicBoards as $b) @php $c = $b['competition']; $t = $b['totals']; $participants = $b['participants']; @endphp
#{{ (int)$c->id }} — {{ $c->title ?? 'مسابقة رمضان' }}
الحالة: {{ $c->status ?? '—' }} مشاركون: {{ (int)$t['participants'] }}
مشاركون
{{ (int)$t['participants'] }}
نقاط اليوم
{{ (int)$t['today_points'] }}
المجموع
{{ (int)$t['total_points'] }}
@if(empty($participants))
لا يوجد مشاركون/نقاط لهذه المسابقة بعد.
@else
@foreach($participants as $p) @endforeach
المشارك النوع نقاط اليوم النقاط الكلية
{{ $p['name'] }}
{{-- 👑 بطل الأمس تحت الاسم --}} @if(!empty($p['is_yesterday_champion']))
بطل الأمس
@endif
@if(($p['type_label'] ?? '') === 'ضيف') ضيف @else عضو @endif {{ (int)($p['today_points'] ?? 0) }} {{ (int)($p['total_points'] ?? 0) }}
*ملاحظة: الترتيب حسب نقاط اليوم ثم النقاط الكلية.
@endif
@endforeach
@endif
تنبيهات انتهاء التعتير للأعضاء
القاعدة: قبل يومين (48 ساعة) يظهر تنبيهقبل يوم (24 ساعة) يظهر إنذار.
مهم: الهدف هو التجديد قبل الانتهاء لتفادي أي تعطل في التحقق أو الدخول.
بحاجة إجراء: {{ (int)($counts['needs_action'] ?? 0) }} إداري: {{ (int)($rb['admin'] ?? 0) }} مشرف: {{ (int)($rb['supervisor'] ?? 0) }} عضو: {{ (int)($rb['member'] ?? 0) }}
@if($taateerRoute !== '#') فتح نظام التعتير @endif
{{-- Summary pills --}}
منتهي
{{ (int)($counts['expired'] ?? 0) }}
إنذار (≤ 24 ساعة)
{{ (int)($counts['danger'] ?? 0) }}
تنبيه (≤ 48 ساعة)
{{ (int)($counts['warning'] ?? 0) }}
أعضاء بأمان
{{ (int)($counts['safe'] ?? 0) }}
{{-- EXPIRED --}} @if($expired->isNotEmpty())
🔥 أكواد منتهية — يجب إعادة إصدار/تجديد فورًا
    @foreach($expired->take(12) as $m)
  • {{ $m->name ?: ($m->username ? '@'.$m->username : '#'.$m->id) }} {{ $m->roleLabel }}
    انتهى عند: {{ \Carbon\Carbon::parse($m->expiresAt, $tzDash)->locale('ar')->isoFormat('D MMMM YYYY – h:mm A') }}
    منتهي
  • @endforeach
@if($expired->count() > 12)
و {{ $expired->count() - 12 }} آخرون…
@endif
@endif {{-- DANGER <= 24h --}} @if($danger->isNotEmpty())
⚠️ إنذار قبل يوم — متبقي أقل من 24 ساعة
    @foreach($danger->take(12) as $m) @php $h = max(0, (int)$m->hoursLeft); @endphp
  • {{ $m->name ?: ($m->username ? '@'.$m->username : '#'.$m->id) }} {{ $m->roleLabel }}
    ينتهي: {{ \Carbon\Carbon::parse($m->expiresAt, $tzDash)->locale('ar')->isoFormat('D MMMM YYYY – h:mm A') }}
    متبقي {{ $h }}س
  • @endforeach
@if($danger->count() > 12)
و {{ $danger->count() - 12 }} آخرون…
@endif
@endif {{-- WARNING <= 48h --}} @if($warning->isNotEmpty())
🔔 تنبيه قبل يومين — متبقي أقل من 48 ساعة
    @foreach($warning->take(12) as $m) @php $h = max(0, (int)$m->hoursLeft); @endphp
  • {{ $m->name ?: ($m->username ? '@'.$m->username : '#'.$m->id) }} {{ $m->roleLabel }}
    ينتهي: {{ \Carbon\Carbon::parse($m->expiresAt, $tzDash)->locale('ar')->isoFormat('D MMMM YYYY – h:mm A') }}
    متبقي {{ $h }}س
  • @endforeach
@if($warning->count() > 12)
و {{ $warning->count() - 12 }} آخرون…
@endif
@endif {{-- SAFE (collapsible) --}}
🟢 أعضاء بأمان (أكثر من 48 ساعة) {{ $safe->count() }}
@if($safe->isEmpty())
لا يوجد.
@else
    @foreach($safe->take(10) as $m)
  • {{ $m->name ?: ($m->username ? '@'.$m->username : '#'.$m->id) }} {{ $m->roleLabel }}
    ينتهي: {{ \Carbon\Carbon::parse($m->expiresAt, $tzDash)->locale('ar')->isoFormat('D MMMM YYYY – h:mm A') }}
  • @endforeach
@if($safe->count() > 10)
و {{ $safe->count() - 10 }} آخرون…
@endif @endif
@endif
{{-- خلفية Enterprise (fancy) --}}
{{-- Toast container --}}
{{-- ======================= Top Sticky Console Bar + Tabs ======================= --}}
{{-- Top Header (Compact) --}}

SuperAdmin Console — مركز الإدارة العليا

Live
{{ \Carbon\Carbon::now()->locale('ar')->isoFormat('dddd D MMMM YYYY') }} {{ now($tz)->format('H:i') }}
{{-- User badge: hidden on mobile to save space --}}
{{-- Tabs (Mobile-first: horizontal scroll instead of big wrap) --}}
@php $tabs = [ ['key' => 'overview', 'label' => 'نظرة عامة', 'icon' => 'fa-layer-group'], ['key' => 'members', 'label' => 'الأعضاء', 'icon' => 'fa-users-gear'], ['key' => 'requests', 'label' => 'الطلبات', 'icon' => 'fa-inbox'], ['key' => 'presence', 'label' => 'التواجد', 'icon' => 'fa-signal'], ['key' => 'analytics', 'label' => 'التحليلات', 'icon' => 'fa-chart-pie'], ['key' => 'proactive', 'label' => 'ProActive', 'icon' => 'fa-bolt'], ['key' => 'tips', 'label' => 'النصائح', 'icon' => 'fa-lightbulb'], ]; @endphp
{{-- subtle divider line --}}
@foreach ($tabs as $t) @endforeach
{{-- optional: hide scrollbar --}} {{-- ======================= PANELS ======================= --}} {{-- Panel: OVERVIEW --}}
{{-- Hero Card (Enterprise Profile + KPIs) --}}
صورة المشرف

لوحة الإدارة العليا — تحكم Enterprise

مرحبا {{ $user->name }}

مشرف / الإدارة العليا
{{ \Carbon\Carbon::now()->locale('ar')->isoFormat('dddd D MMMM YYYY') }} آخر تسجيل دخول: {{ $user->last_activity ? \Carbon\Carbon::parse($user->last_activity)->diffForHumans() : 'لأول مرة' }}

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

{{-- KPIs --}}
@php $kpis = [ [ 'label' => 'إجمالي المستخدمين', 'value' => $stats['total_users'] ?? '—', 'valueCls' => 'text-slate-900 dark:text-white', 'icon' => 'fa-users', 'iconWrap' => 'bg-blue-500/10 text-blue-600 dark:bg-blue-500/10 dark:text-blue-200', ], [ 'label' => 'الأعضاء الرسميين', 'value' => $stats['official_members'] ?? '—', 'valueCls' => 'text-emerald-600 dark:text-emerald-200', 'icon' => 'fa-badge-check', 'iconWrap' => 'bg-emerald-500/10 text-emerald-600 dark:bg-emerald-500/10 dark:text-emerald-200', ], [ 'label' => 'أعضاء بيتا', 'value' => $stats['beta_members'] ?? '—', 'valueCls' => 'text-amber-600 dark:text-amber-200', 'icon' => 'fa-flask', 'iconWrap' => 'bg-amber-500/10 text-amber-600 dark:bg-amber-500/10 dark:text-amber-200', ], [ 'label' => 'المتواجدون الآن', 'value' => $stats['online_users'] ?? '—', 'valueCls' => 'text-violet-600 dark:text-violet-200', 'icon' => 'fa-signal', 'iconWrap' => 'bg-violet-500/10 text-violet-600 dark:bg-violet-500/10 dark:text-violet-200', ], ]; @endphp @foreach ($kpis as $k)

{{ $k['label'] }}

{{ $k['value'] }}

@endforeach
{{-- كارد الأعضاء بعذر رسمي اليوم --}} @if (isset($todayExcusedUsers) && $todayExcusedUsers->isNotEmpty())
يوجد أعضاء في فترة غياب معتمدة تغطي تاريخ اليوم.
الأعضاء اليوم عندهم عذر رسمي للغياب:
{{ $todayExcusedUsers->count() }}
    @foreach ($todayExcusedUsers as $u)
  • {{ mb_substr($u->name ?: $u->username, 0, 1) }}
    {{ $u->name ?: $u->username }}
    {{ $u->username ? '@' . $u->username : '' }}
  • @endforeach
@endif {{-- مركز الأولويات الآن --}} @php $pendingRequests = (int) ($requestStats['pending'] ?? 0); $newRequests = (int) ($requestStats['new'] ?? 0); $pendingAbsences = (int) ($absenceStats['pending'] ?? 0); $pendingEvals = (int) ($stats['pending_evaluations'] ?? 0); $pendingViolations = (int) ($violationStats['pending'] ?? ($stats['pending_violations'] ?? 0)); $unreadTips = (int) ($stats['unread_tips'] ?? 0); $scheduledLives = (int) ($stats['scheduled_lives'] ?? 0); $urgentTotal = $pendingRequests + $pendingAbsences + $pendingEvals + $pendingViolations + $unreadTips; $pressure = 0; $pressure += min(30, ($pendingRequests / 10) * 30); $pressure += min(20, ($pendingAbsences / 10) * 20); $pressure += min(20, ($pendingViolations / 10) * 20); $pressure += min(20, ($pendingEvals / 30) * 20); $pressure += min(10, ($unreadTips / 20) * 10); $pressure += min(10, ($scheduledLives / 50) * 10); $pressure = (int) round(min(100, $pressure)); $status = 'good'; $label = 'مستقر'; if ($pressure >= 75) { $status = 'danger'; $label = 'حرج'; } elseif ($pressure >= 45) { $status = 'warning'; $label = 'متوسط'; } $barClass = $status === 'danger' ? 'bg-gradient-to-r from-red-500 to-rose-500' : ($status === 'warning' ? 'bg-gradient-to-r from-amber-400 to-orange-500' : 'bg-gradient-to-r from-emerald-400 via-sky-400 to-violet-400'); $urlRequests = \Illuminate\Support\Facades\Route::has('live-activities.requests.index') ? route('live-activities.requests.index') : '#'; $urlLivesToday = \Illuminate\Support\Facades\Route::has('superadmin.falcon-room.lives-new.confirm') ? route('superadmin.falcon-room.lives-new.confirm', ['date' => now()->toDateString()]) : '#'; $urlTemplates = \Illuminate\Support\Facades\Route::has( 'superadmin.falcon-room.lives-insights.templates.index', ) ? route('superadmin.falcon-room.lives-insights.templates.index') : '#'; $urlFeedback = \Illuminate\Support\Facades\Route::has( 'superadmin.falcon-room.lives-insights.feedback.index', ) ? route('superadmin.falcon-room.lives-insights.feedback.index') : '#'; $templatesTotal = (int) ($insightsStats['templates_total'] ?? 0); $feedbackWeek = (int) ($insightsStats['feedback_week'] ?? 0); $topAiTip = $aiProgramTips[0] ?? null; @endphp
{{-- Left: Ramadan Priorities --}}

مركز رمضان الآن

ملخص سريع لأهم ملفات النظام الرمضاني اليوم — مسابقات • هدايا/ميزانية • جدول ساعات • تنبيهات • أرشيف.

المتواجدون الآن: {{ $ramadanOnlineUsers ?? 0 }} تنبيهات رمضان (معلّقة): {{ $ramadanUrgentTotal ?? 0 }} @if (!empty($ramadanNextSlot)) أقرب ساعة رمضان: {{ $ramadanNextSlot->scheduled_date ?? '—' }}{{ $ramadanNextSlot->scheduled_time ?? '—' }} @endif {{-- ✅ مسابقات 9 و10 --}} {{ $ramadanC9Title ?? 'المسابقة 9' }}: {{ $ramadanC9Participants ?? 0 }} مشارك {{ $ramadanC9PointsSum ?? 0 }} نقطة {{ $ramadanC10Title ?? 'المسابقة 10' }}: {{ $ramadanC10Participants ?? 0 }} مشارك {{ $ramadanC10PointsSum ?? 0 }} نقطة
{{-- Right: Ramadan Pressure --}}
ضغط رمضان اليوم {{ $ramadanPressure ?? 0 }} / 100 — {{ $ramadanLabel ?? 'مستقر' }}
{{-- ✅ قول كمان: ضغط يومي/أسبوعي/شهري --}}
يومي: {{ $ramadanPressureDaily ?? ($ramadanPressure ?? 0) }}/100 أسبوعي: {{ $ramadanPressureWeekly ?? 0 }}/100 شهري: {{ $ramadanPressureMonthly ?? 0 }}/100 البروجريس: {{ $ramadanProgress ?? 0 }}%
{{-- ✅ Progress bar --}}
ملاحظة: البروجريس محسوب من ضغط الأسبوع + الشهر (كل ما الضغط أعلى يقل البروجريس).
{{-- Meta strip --}}
المشاركون: {{ $ramadanParticipantsTotal ?? 0 }} مسابقات مربوطة: {{ $ramadanLinkedCompetitionsTotal ?? 0 }} مشاركون بالمسابقات: {{ $ramadanParticipantsInComps ?? 0 }} تقارير اليوم: {{ $ramadanReportsToday ?? 0 }}
{{-- Breakdown --}}
{{-- ✅ Competitions card (تسمية صحيحة حسب enum) --}}
مسابقات (مسودات)
مربوطة: {{ $ramadanLinkedCompetitionsTotal ?? 0 }}
{{ $ramadanPendingCompetitions ?? 0 }} @if (($ramadanNewCompetitions ?? 0) > 0) (+{{ $ramadanNewCompetitions }}) @endif
نشطة: {{ $ramadanActiveCompetitions ?? 0 }} {{-- ✅ اختياري: منتهية --}} منتهية: {{ $ramadanEndedCompetitions ?? 0 }}
{{-- Financial --}}
هدايا/ميزانية (Pending)
{{ $ramadanPendingFinancial ?? 0 }}
الإجمالي: {{ $ramadanFinancialTotal ?? 0 }}
{{-- Schedule --}}
الجدول/الساعات (Pending)
{{ $ramadanPendingSchedule ?? 0 }}
اليوم: {{ $ramadanScheduledToday ?? 0 }}
القادمة: {{ $ramadanNextSlot->slot_label ?? '—' }} @if (!empty($ramadanNextSlot)) ({{ $ramadanNextSlot->scheduled_date ?? '' }} {{ $ramadanNextSlot->scheduled_time ?? '' }}) @endif
{{-- Archive + Alerts --}}
توثيق/أرشيف (Pending)
{{ $ramadanPendingArchive ?? 0 }}
تنبيهات عاجلة: {{ $ramadanUrgentTotal ?? 0 }}
{{-- Ramadan quick links --}} {{-- AI Ramadan Tip --}} @if (!empty($ramadanTopAiTip))
توصية رمضان الذكية — {{ $ramadanTopAiTip['score'] ?? '' }}
{{ $ramadanTopAiTip['title'] ?? '—' }}
{{ $ramadanTopAiTip['body'] ?? '' }}
@endif
ملاحظة: مؤشر “ضغط رمضان” تقديري مبني على (تنبيهات + مسابقات مسودات + مالية + جدول ساعات + أرشيف + مشاركين + تقارير اليوم). آخر تحديث عند تحميل الصفحة.
{{-- بطاقة رقم التعتير --}} @if (isset($taateer) && $taateer) @php $issuedAt = \Carbon\Carbon::parse($taateer->issued_at)->locale('ar'); $expiresAt = \Carbon\Carbon::parse($taateer->expires_at)->locale('ar'); @endphp

رقم التعتير الخاص بك

مفعل حالياً

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

رقم تعتيرك
{{ $taateer->code }}
تاريخ إنشاء المفتاح
{{ $issuedAt->isoFormat('D MMMM YYYY – h:mm A') }}
تاريخ انتهاء الصلاحية
{{ $expiresAt->isoFormat('D MMMM YYYY – h:mm A') }}
عند انتهاء الصلاحية لن تتمكن من الدخول حتى يتم إصدار رقم جديد من قبل الصقر.
@else
🚨 لا يوجد رقم تعتير فعّال لحسابك حالياً. الرجاء التواصل مع مدير نظام التعتير — الصقر للتحقق من حسابك.
@endif {{-- رسائل الإدارة (AJAX) --}}
📣 رسائل الإدارة
{{-- Panel: MEMBERS --}} {{-- Panel: REQUESTS --}} {{-- Panel: PRESENCE --}} {{-- Panel: ANALYTICS --}} {{-- Panel: PROACTIVE --}} {{-- Panel: TIPS --}}
{{-- 🌟 Dock نقاطك - ثابت أسفل الشاشة --}}
نقاطك: {{ number_format(auth()->user()->total_points) }}
{{-- Helpers --}}
@endsection @push('scripts') {{-- ApexCharts --}} {{-- Encrypted Access Token --}} {{-- Enterprise Tabs + Toasts + Global Refresh --}} {{-- رسائل الإدارة (AJAX) --}} {{-- المتواجدون الآن + من تواجدوا اليوم (AJAX) --}} @if (auth()->check()) @endif {{-- ApexCharts Lazy Render (Analytics + Tips) --}} @endpush