@extends('layouts.superadmin') @section('content') @php use Carbon\Carbon; @endphp
{{-- تنبيه نجاح --}} @if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{{ session('error') }}
@endif {{-- هيدر ملحمي لصفحة التأكيد --}}
{{-- زخارف --}}
غرفة الصقر — إدارة حضور اللايفات

لايفات (جديد) — تأكيد

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

{{-- تلميح صغير --}}
تذكير: تغيير حالة أي لايف يقوم مباشرة بتعديل نقاط العضو وتسجيل الحركة في سجلات غرفة الصقر.
{{-- فلاتر البحث --}}
{{-- ADD: أزرار سريعة للتاريخ (تضمن إرسال YYYY-MM-DD) --}} @php $tz = config('app.timezone','Asia/Jerusalem'); $todayStr = \Carbon\Carbon::now($tz)->toDateString(); $tomorrowStr = \Carbon\Carbon::now($tz)->addDay()->toDateString(); $yesterdayStr= \Carbon\Carbon::now($tz)->subDay()->toDateString(); $qsBase = request()->except('date'); // نحافظ على q/type/status @endphp
اليوم غدا أمس (القيمة الحالية: {{ $date }})
{{-- END ADD --}}
{{-- نسخ جدول اللايفات لليوم/الأيام القادمة --}} @php $copyUsers = \App\Models\User::where('account_status','active') ->orderByRaw('COALESCE(name,username) ASC') ->get(['id','name','username']); @endphp
@csrf

🧬 نسخ جدول اللايفات لأيام قادمة

اختر يومًا أساسيًا، ثم انسخ نفس اللايفات لليوم التالي، ليومين، أو لأسبوع كامل.

عند النسخ، يقوم النظام بتفادي التكرار لنفس العضو ونفس الوقت في الأيام الهدف.

{{-- KPIs --}}
إجمالي لايفات اليوم
{{ $kpis['total'] }}
مؤكد: {{ $kpis['confirmed'] }} • عذر: {{ $kpis['excuse'] }} • بدون: {{ $kpis['noexcuse'] }}
لايفات غير محسومة
{{ $kpis['pending'] }}
كل لايف غير محسوم يؤثر لاحقاً على تقييم حضور العضو.
إحصائيات الشهر
{{ $month['total'] }}
مؤكد: {{ $month['confirmed'] }} • بانتظار المتابعة: {{ $month['pending'] }}
قواعد النقاط
حضر: +4مع عذر: 0بدون عذر: -2

النقاط تطبَّق تلقائياً على تقييم العضو في النظام.

{{-- كروت اللايفات --}} @if($streams->isEmpty())
لا يوجد لايفات لهذا اليوم بحسب الفلاتر الحالية.
@else
@foreach($streams as $live) @php $u = $live->user; $name = $u->name ?: $u->username; $hours = round(($live->duration_hours ?? 0) + (($live->duration_minutes ?? 0)/60), 2); $timeText = $live->scheduled_time ? Carbon::parse($live->scheduled_time)->format('H:i') : '—'; $statusLabel = match($live->status) { 'confirmed' => 'مؤكد', 'missed_excuse' => 'مع عذر', 'missed_no_excuse' => 'بدون عذر', default => 'غير مؤكد', }; $statusClass = match($live->status) { 'confirmed' => 'bg-emerald-100 text-emerald-800 dark:bg-emerald-900/40 dark:text-emerald-200', 'missed_excuse' => 'bg-amber-100 text-amber-800 dark:bg-amber-900/40 dark:text-amber-200', 'missed_no_excuse' => 'bg-rose-100 text-rose-800 dark:bg-rose-900/40 dark:text-rose-200', default => 'bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-100', }; $isProactive = str_contains((string)($live->description ?? ''), '[PROACTIVE_SCHEDULE_ID=') || (strcasecmp((string)($live->slot_label ?? ''), 'ProActive') === 0); @endphp
{{-- الهيدر: العضو + الصورة + وقت اللايف --}}
{{ $name }}
{{ $name }} @if($live->is_sahra) 🔥 سهرة @endif
#{{ $u->id }}
{{ $timeText }}
{{ $live->slot_label ?: '—' }}
{{-- معلومات سريعة وسط الكرت --}}
النوع @if($live->type==='guests') قستات @elseif($live->type==='tours') تحديات @else كلاهما @endif
المدة {{ $hours }} ساعة
الحالة {{ $statusLabel }} ({{ (int)($live->points_earned ?? 0) }})
{{-- أزرار الإجراءات --}}

اختر الحالة الصحيحة حسب حضور العضو لهذا اللايف.

@endforeach
@endif {{-- فوتر ملحمي يشرح فلسفة تأكيد اللايفات --}}

🧾 كيف تستخدم صفحة تأكيد اللايفات؟

  • اختر اليوم المطلوب من الفلاتر، ثم راجع قائمة اللايفات واحدًا تلو الآخر.
  • استخدم زر حضر عند تأكيد حضور اللايف فعليًا.
  • في حال وجود عذر حقيقي، استخدم زر عذر واكتب السبب بالتفصيل.
  • إن لم يحضر العضو ولا يوجد مبرر مقنع، استخدم زر بدون لتسجيل الغياب بدون عذر.
  • الحذف مخصص للحالات التقنية فقط (خطأ بإدخال اللايف، عضو غير صحيح، أو تكرار).

⚖️ ملاحظات مهمة عن العدالة في التقييم

  • قرار الحالة (حضر / عذر / بدون) يؤثر مباشرة على نقاط العضو وسجله داخل فريق الوفاء الذهبي.
  • الهدف من النظام هو العدالة والتنظيم وليس العقاب لمجرد العقاب.
  • الأعذار يجب أن تكون واضحة ومكتوبة، لأن النظام يحفظها كمرجع مستقبلي عند تقييم العضو.
  • يفضّل توثيق الأنماط المتكررة (غيابات متتالية بدون عذر) قبل اتخاذ أي قرار إداري أكبر.
صفحة تأكيد اللايفات — جزء من منظومة غرفة الصقر لمتابعة الحضور داخل فريق الوفاء الذهبي.
{{-- Modal: Excuse --}} {{-- ✅ ADD: Modal ملحمي لـ ProActive (منع التأكيد/العذر/الحذف) --}} @endsection