@extends('admin.layout') @section('title', 'Dashboard') @section('content') {{-- ── Gebeurtenissen van de dag ──────────────────────────────────────── --}}
{{-- Header + datumkiezer --}} @php $prevDate = \Carbon\Carbon::parse($dateStr)->subDay()->toDateString(); $nextDate = \Carbon\Carbon::parse($dateStr)->addDay()->toDateString(); $isToday = $dateStr === today()->toDateString(); @endphp

Gebeurtenissen

@if ($isToday) @else vandaag @endif
@php $logsUrl = route('admin.logs'); $appErrCount = count($events['appErrors']); $srvErrCount = $events['serverErrors']->count(); @endphp
{{-- Nieuwe accounts --}} @php $newCount = $events['newAccounts']->count(); @endphp
Nieuwe accounts {{ $newCount }} @if ($newCount)
    @foreach ($events['newAccounts']->take(5) as $u)
  • #{{ $u->id }} {{ $u->name ?: $u->email }} {{ \Carbon\Carbon::parse($u->created_at)->format('H:i:s') }}
  • @endforeach @if ($newCount > 5)
  • +{{ $newCount - 5 }} meer
  • @endif
Alle gebruikers → @else

Geen

@endif
{{-- Actieve gebruikers --}} @php $activeCount = ($events['activeUsers'] ?? collect())->count(); @endphp
Actieve gebruikers
● {{ $stats['active_now'] }} nu {{ $activeCount }}
@if ($activeCount)
    @foreach (($events['activeUsers'] ?? collect())->take(5) as $u)
  • @if ($u->user_id) #{{ $u->user_id }} {{ $u->name }} @else Gast @endif
    {{ \Carbon\Carbon::parse($u->last_active_at)->format('H:i') }} {{ $u->page_count }}p
  • @endforeach @if ($activeCount > 5)
  • +{{ $activeCount - 5 }} meer
  • @endif
@else

Geen

@endif
{{-- Accounts verwijderd --}} @php $delCount = $events['deleted']->count(); @endphp
Accounts verwijderd {{ $delCount }} @if ($delCount)
    @foreach ($events['deleted']->take(5) as $log)
  • @if ($log->target_user_id) #{{ $log->target_user_id }} @endif {{ $log->target_name ?: '—' }} @if ($log->note === 'self-deletion') (zelf) @elseif ($log->admin_id) (admin) @endif {{ $log->target_email }} {{ \Carbon\Carbon::parse($log->created_at)->format('H:i:s') }}
  • @endforeach @if ($delCount > 5)
  • +{{ $delCount - 5 }} meer
  • @endif
Security log → @else

Geen

@endif
{{-- Profielmeldingen --}} @php $repCount = $events['reports']->count(); @endphp
Profielmeldingen {{ $repCount }} @if ($repCount) Alle meldingen → @else

Geen

@endif
{{-- Betalingen --}} @php $payCount = $events['payments']->count(); $payLabels = [ 'checkout_started' => 'Checkout gestart', 'plan_switch_started' => 'Planwissel gestart', 'payment_paid' => 'Betaald', 'renewal_paid' => 'Verlenging betaald', 'payment_refunded' => '↩ Terugbetaald', 'payment_charged_back' => '↩ Chargeback', 'payment_failed' => 'Mislukt', 'payment_expired' => 'Verlopen', 'payment_cancelled' => 'Geannuleerd', 'subscription_cancelled' => 'Abonnement opgezegd', 'referral_rewarded' => 'Referral beloond', ]; @endphp
Betalingen {{ $payCount }} @if ($payCount) Betalingslog → @else

Geen

@endif
{{-- App-fouten --}}
App-fouten {{ $appErrCount }} @if ($appErrCount)
    @foreach (array_slice($events['appErrors'], 0, 5) as $err)
  • {{ $err['level'] === 'CRITICAL' || $err['level'] === 'EMERGENCY' ? '⚠ ' : '' }}{{ \Illuminate\Support\Str::limit($err['message'], 60) }} {{ substr($err['time'], 0, 5) }}
  • @endforeach @if ($appErrCount > 5)
  • +{{ $appErrCount - 5 }} meer
  • @endif
App-foutenlog → @else

Geen

@endif
{{-- Serverfouten --}}
Serverfouten (5xx) {{ $srvErrCount }} @if ($srvErrCount) Serverlog → @else

Geen

@endif
{{-- Clientfouten (4xx) --}} @php $clientErrCount = $events['clientErrors']->count(); @endphp
Clientfouten (4xx) {{ $clientErrCount }} @if ($clientErrCount)
    @foreach ($events['clientErrors']->take(5) as $req)
  • {{ $req->status }} {{ $req->method }} {{ $req->path }} {{ \Carbon\Carbon::parse($req->created_at)->format('H:i:s') }}
  • @endforeach @if ($clientErrCount > 5)
  • +{{ $clientErrCount - 5 }} meer
  • @endif
Serverlog → @else

Geen

@endif
{{-- Likes --}}
Likes {{ $events['likesCount'] }} @if ($events['likesCount'])

{{ $events['likesCount'] }} {{ $events['likesCount'] === 1 ? 'like' : 'likes' }} verstuurd op deze dag.

@else

Geen

@endif
{{-- Follows --}} @php $followCount = $events['follows']->count(); @endphp
Nieuwe follows {{ $followCount }} @if ($followCount) Follows & Blocks → @else

Geen

@endif
{{-- Nieuwe posts --}} @php $postCount = $events['newPosts']->count(); @endphp
Nieuwe posts {{ $postCount }} @if ($postCount)
    @foreach ($events['newPosts']->take(5) as $post)
  • #{{ $post->user_id }} {{ $post->user?->name ?? '?' }} — {{ \Illuminate\Support\Str::limit(strip_tags($post->body), 40) }} {{ \Carbon\Carbon::parse($post->created_at)->format('H:i:s') }}
  • @endforeach @if ($postCount > 5)
  • +{{ $postCount - 5 }} meer
  • @endif
Alle posts → @else

Geen

@endif
{{-- Nieuwe gesprekken --}} @php $convCount = $events['newConversations']->count(); @endphp
Nieuwe gesprekken {{ $convCount }} @if ($convCount) Alle berichten → @else

Geen

@endif
{{-- Contactberichten (niet-meldingen) --}} @php $contactCount = $events['contactMessages']->count(); @endphp
Contactberichten {{ $contactCount }} @if ($contactCount)
    @foreach ($events['contactMessages']->take(5) as $msg)
  • {{ $msg->name ?: $msg->email }} {{ \Carbon\Carbon::parse($msg->created_at)->format('H:i:s') }}
  • @endforeach @if ($contactCount > 5)
  • +{{ $contactCount - 5 }} meer
  • @endif
Alle contactberichten → @else

Geen

@endif
@php $fmt = fn(float $v): string => "€\u{202F}" . number_format($v, 2, ',', '.'); @endphp
{{-- Omzet (2/3) --}}

Omzet (betaalde abonnementen)

{{-- Periodes --}}
@foreach ([ ['Vandaag', $revenue['today']], ['Deze week', $revenue['week']], ['Deze maand', $revenue['month']], ['Dit kwartaal', $revenue['quarter']], ['Dit jaar', $revenue['year']], ] as [$label, $val]) {{ $label }} {{ $fmt($val) }} @endforeach
{{-- Scheidingslijn + gemiddelden --}}

Gemiddelden

@foreach ([ ['Gem/dag (30d)', $revenue['avg_day']], ['Gem/week (12w)', $revenue['avg_week']], ['Gem/maand (12m)', $revenue['avg_month']], ] as [$label, $val]) {{ $label }} {{ $fmt($val) }} @endforeach
{{-- Omzet mini-chart (14 dagen) --}} @php $revDays = collect(); for ($i = 13; $i >= 0; $i--) { $d = now()->subDays($i)->format('Y-m-d'); $revDays[$d] = (float) ($revenue['chart'][$d] ?? 0); } $revMax = max($revDays->max(), 0.01); @endphp
@foreach ($revDays as $d => $val)
{{ \Carbon\Carbon::parse($d)->format('d') }}
@endforeach
{{-- Geslacht donut --}}

Geslacht (profielen)

@php $gMale = (int) ($genderStats['male'] ?? 0); $gFemale = (int) ($genderStats['female'] ?? 0); $gOther = (int) ($genderStats['other'] ?? 0); $gTotal = $gMale + $gFemale + $gOther; if ($gTotal > 0) { $gStop1 = round($gMale / $gTotal * 100); $gStop2 = round(($gMale + $gFemale) / $gTotal * 100); } else { $gStop1 = $gStop2 = 0; } @endphp @if ($gTotal > 0)
@foreach ([ ['Man', $gMale, $gStop1, '#60a5fa'], ['Vrouw', $gFemale, $gStop2 - $gStop1, '#f472b6'], ['Anders', $gOther, 100 - $gStop2, '#a78bfa'], ] as [$label, $count, $pct, $color])
{{ $label }}
{{ $count }} {{ $pct }}%
@endforeach
@else

Geen profielen

@endif
@endsection