@extends('layouts.superadmin') @section('title','الاستمرارية - ProMission') @section('page-title','الاستمرارية (Streaks) - ProMission') @section('content') @php $from = $from ?? request('from'); $to = $to ?? request('to'); $rows = collect($rows ?? []); $isCards = (request('view','cards') === 'cards'); $badge = function($streak){ $streak = (int)$streak; if ($streak >= 10) return 'bg-emerald-500/15 text-emerald-200 border-emerald-500/25'; if ($streak >= 5) return 'bg-sky-500/15 text-sky-200 border-sky-500/25'; if ($streak >= 3) return 'bg-amber-500/15 text-amber-200 border-amber-500/25'; return 'bg-rose-500/15 text-rose-200 border-rose-500/25'; }; $label = function($streak){ $streak = (int)$streak; if ($streak >= 10) return 'أسطورة 🔥'; if ($streak >= 5) return 'ثابت ✅'; if ($streak >= 3) return 'بداية جيدة ⚡'; return 'متقطع 🧊'; }; $maxStreak = (int)($rows->max('streak_days') ?? 0); $avgStreak = round((float)($rows->avg('streak_days') ?? 0), 1); $avgActive = round((float)($rows->avg('active_days') ?? 0), 1); $countLegend = $rows->filter(fn($r)=> (int)$r['streak_days'] >= 10)->count(); $countStable = $rows->filter(fn($r)=> (int)$r['streak_days'] >= 5 && (int)$r['streak_days'] < 10)->count(); $countStarter= $rows->filter(fn($r)=> (int)$r['streak_days'] >= 3 && (int)$r['streak_days'] < 5)->count(); $countLow = max(0, $rows->count() - $countLegend - $countStable - $countStarter); @endphp
{{-- Header --}}

الاستمرارية (Streaks)

الاستمرارية = أطول سلسلة أيام نشاط متتالية ضمن الفترة (نشاط = لايف/قست/سهرة).

{{-- Toggle --}}
{{-- Summary Cards --}}
عدد الأعضاء
{{ $rows->count() }}
أعلى Streak
{{ $maxStreak }} يوم
متوسط Streak
{{ $avgStreak }}
متوسط أيام النشاط
{{ $avgActive }}
التصنيف
أسطورة: {{ $countLegend }}
ثابت: {{ $countStable }}
بداية: {{ $countStarter }}
متقطع: {{ $countLow }}
{{-- Filters --}}
إعادة ضبط Streak = أطول سلسلة أيام متتالية فيها أي نشاط.
{{-- Cards view --}} @if($isCards)
@forelse($rows as $r) @php $st = (int)$r['streak_days']; $act= (int)$r['active_days']; $lbl= $label($st); @endphp
#{{ $r['user_id'] }} • {{ $lbl }}
أيام نشطة: {{ $act }} يوم
{{ $st }} يوم
Streak
{{ $st }}
نشاط
{{ $act }}
توصية: {{ $st >= 5 ? 'حافظ على السلسلة واثبت.' : ($st >= 3 ? 'ارفعها لـ 5 أيام.' : 'ابدأ بسلسلة 3 أيام.') }}
@empty
لا يوجد بيانات ضمن الفلاتر الحالية.
@endforelse
{{-- Table view --}} @else

جدول الاستمرارية

أطول سلسلة + عدد أيام النشاط.

صفوف: {{ $rows->count() }}
@forelse($rows as $r) @php $st = (int)$r['streak_days']; $lbl = $label($st); @endphp @empty @endforelse
User ID Streak أيام نشطة التصنيف
#{{ $r['user_id'] }} {{ $st }} {{ (int)$r['active_days'] }} {{ $lbl }}
لا يوجد بيانات.
@endif
الاستمرارية تعطيك “من ثابت” ومن يحتاج متابعة فورية.
@endsection