@extends('layouts.admin.master') @section('content') @php $peakMessages = collect($messageTrend)->max() ?: 0; $peakConversations = collect($conversationTrend)->max() ?: 0; $contributorLabels = $topContributors ->map(fn($user) => $user->name ?: $user->username ?: $user->email) ->values() ->all(); $contributorSeries = $topContributors ->pluck('chat_messages_count') ->values() ->all(); $dashboardPayload = json_encode([ 'trendLabels' => $trendLabels, 'messageTrend' => $messageTrend, 'conversationTrend' => $conversationTrend, 'shareSeries' => [$direct_conversations, $group_conversations, $blocked_members], 'shareLabels' => ['Direct chat', 'Group chat', 'Akun diblokir'], 'contributors' => [ 'labels' => $contributorLabels, 'series' => $contributorSeries, ], ], JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT); @endphp

Daftar Obrolan

{{ number_format($total_conversations) }}

{{ number_format($direct_conversations) }} direct, {{ number_format($group_conversations) }} grup

Total Pesan

{{ number_format($total_messages) }}

Rata-rata {{ number_format($avg_messages_per_conversation, 1) }} pesan per thread

Pesan Hari Ini

{{ number_format($messages_today) }}

{{ number_format($messages_today_ratio, 1) }}% dari total histori pesan

Peserta Aktif

{{ number_format($active_chat_members) }}

Dari {{ number_format($total_anggota) }} anggota terdaftar

Daftar Blokir

{{ number_format($blocked_members) }}

{{ number_format($blocked_ratio, 1) }}% dari basis anggota
Operator tomCHAT

Dasbor kendali obrolan admin

Dasbor ini memusatkan pemantauan thread, tren aktivitas pesan, pengelolaan anggota aktif, dan jalur moderasi obrolan agar operasional tomCHAT terasa seperti aplikasi percakapan profesional.

Puncak pesan harian {{ number_format($peakMessages) }} pesan
Puncak thread harian {{ number_format($peakConversations) }} thread
Obrolan dominan {{ $direct_conversations >= $group_conversations ? 'Direct chat' : 'Group chat' }}
Snapshot Operasional
Kesehatan komunitas obrolan
Anggota aktif dalam percakapan {{ number_format($active_chat_members) }}
Thread direct {{ number_format($direct_conversations) }}
Thread grup {{ number_format($group_conversations) }}
Rasio blokir anggota {{ number_format($blocked_ratio, 1) }}%
Kontribusi pesan hari ini {{ number_format($messages_today_ratio, 1) }}%
Fokuskan operator ke `Daftar Obrolan` untuk balas thread, lalu gunakan `Daftar Blokir` dan `Daftar Anggota` untuk moderasi akun bila diperlukan.
Tren 14 Hari
Performa obrolan harian
Komposisi
Sebaran operasional obrolan
Kontributor
Pengirim pesan paling aktif
Thread Terkini
Obrolan yang paling baru bergerak
@forelse ($latestConversations as $conversation)
{{ $conversation->title }}

{{ $conversation->latest_body }}

{{ number_format($conversation->messages_count) }} pesan {{ $conversation->latest_at }}
@empty
Belum ada thread obrolan yang bisa ditampilkan.
@endforelse
Moderasi
Akun yang terakhir diblokir
@forelse ($recentBlockedMembers as $user)
{{ $user->anggota?->nama ?: $user->name }}

{{ $user->username ?: $user->email }}

Diblokir {{ $user->updated_at?->diffForHumans() }}
@empty
Belum ada anggota yang sedang diblokir.
@endforelse
Catatan Operator
Prioritas pengelolaan obrolan
Balas thread dari daftar obrolan

Gunakan halaman daftar untuk memilah thread, lalu buka detail hanya saat perlu membalas atau membaca konteks penuh.

Moderasi dari dua titik

Aksi blokir dan aktifkan tersedia di `Daftar Blokir` serta `Daftar Anggota` agar operator tidak perlu menumpuk semua kontrol dalam satu layar.

Amati tren harian

Grafik 14 hari membantu melihat lonjakan percakapan, ritme komunitas, dan kebutuhan operator untuk intervensi lebih cepat.

Jaga halaman depan tetap terpisah

Menu pengaturan landing page tetap hidup, tetapi operasional chat dikonsolidasikan di dashboard dan menu obrolan supaya alur admin tetap bersih.

@endsection @section('stylesheet') @endsection @section('javascript') @php $resource = resource_loader( blade_path: $view, params: [ 'page_title' => $page_attr['title'], ], ); @endphp @endsection