@extends('layouts.app') @section('title', 'Puskodal 110') @section('content') @push('styles') @endpush @php $stats = $stats ?? []; if (empty($stats)) { $stats = [ 'total_complaints' => 1287, 'processing_complaints' => 24, 'active_officers' => 342, 'average_response' => '3m 47s', ]; } $recentComplaints = $recentComplaints ?? collect(); if ($recentComplaints->isEmpty()) { $recentComplaints = collect([ (object)[ 'ticket_number' => 'ADU-20250101-XF91', 'location' => (object)['address' => 'Jl. MH Thamrin, Jakarta Pusat'], 'category' => 'emergency_police', 'dispatches' => collect([(object)['unit_type' => 'Patroli Sabhara']]), 'status' => 'processing', ], (object)[ 'ticket_number' => 'ADU-20250101-YZ12', 'location' => (object)['address' => 'Jl. Raya Bogor KM 25'], 'category' => 'emergency_fire', 'dispatches' => collect([(object)['unit_type' => 'Damkar']]), 'status' => 'dispatched', ], (object)[ 'ticket_number' => 'ADU-20250101-ZP77', 'location' => (object)['address' => 'Jl. Sudirman, Bandung'], 'category' => 'emergency_medical', 'dispatches' => collect([(object)['unit_type' => 'Ambulans PSC']]), 'status' => 'pending', ], ]); } $heatmapData = $heatmapData ?? [ [ 'lat' => -6.2088, 'lng' => 106.8456, 'count' => 32, 'category' => 'emergency_police', 'icon' => 'flame', 'label' => 'Kebakaran Gedung', 'description' => 'Jl. Sudirman No. 45 (Zone B2)', 'status' => 'Critical • ETA 2m', 'color' => 'red', ], [ 'lat' => -6.1380, 'lng' => 106.8317, 'count' => 18, 'category' => 'panic_button', 'icon' => 'bell-ring', 'label' => 'Panic Button Bank', 'description' => 'Bank BCA Mangga Dua', 'status' => 'Verifikasi CCTV', 'color' => 'amber', ], [ 'lat' => -6.2000, 'lng' => 106.9167, 'count' => 12, 'category' => 'patrol_unit', 'icon' => 'car', 'label' => 'Unit 801', 'description' => 'Patroli Sabhara - Rute Thamrin', 'status' => 'On Scene', 'color' => 'blue', ], ]; $incomingAlerts = [ [ 'label' => 'Call 110 • Darurat', 'type' => 'phone', 'icon' => 'phone-call', 'icon_color' => 'text-red-400', 'level' => 'critical', 'desc' => 'Suara teriakan, indikasi KDRT atau penganiayaan.', 'location' => 'Tanah Abang, Jakpus', 'time' => 'Baru saja', ], [ 'label' => 'Panic Button • Bank', 'type' => 'panic', 'icon' => 'alert-triangle', 'icon_color' => 'text-amber-400', 'level' => 'warning', 'desc' => 'BCA KCP Mangga Dua. Tombol Teller 2.', 'location' => 'Mangga Dua, Jakut', 'time' => '2m lalu', ], [ 'label' => 'WhatsApp Official', 'type' => 'chat', 'icon' => 'message-square', 'icon_color' => 'text-green-400', 'level' => 'info', 'desc' => 'Laporan kemacetan akibat pohon tumbang.', 'location' => 'Jl. Ahmad Yani', 'time' => '5m lalu', ], ]; @endphp

Nasional • Polda → Polres → Polsek

Puskodal 110

Sistem aktif Level akses: Nasional
+12%

{{ number_format($stats['total_complaints'] ?? 0) }}

Total aduan (24 jam)

Live

{{ $stats['processing_complaints'] ?? 0 }}

Insiden kritis aktif

{{ $stats['active_officers'] ?? 0 }}

Personil on-duty

{{ $stats['average_response'] ?? '4m 12s' }}

Rata-rata respon

Live tracking Radius nasional

Aduan Real-time

Auto tracking aktif
@foreach($incomingAlerts as $alert) @endforeach

CCTV Gateway

REC

Live feed akan tampil di sini

Klik untuk lihat semua CCTV

Performance Monitoring

Monitor performa Polda/Polres/Polsek

Notifikasi & Automation

Kelola rules & notifikasi

Broadcast Alert

Kirim peringatan darurat

Analytics & Heatmap

Analisis & prediksi kriminal

Statistik Real-time

Status Dispatch & Koordinasi

Lihat semua →
@foreach($recentComplaints->take(3) as $complaint) @endforeach
Ticket Lokasi Kategori Unit Status
{{ $complaint->ticket_number }} {{ $complaint->location->address ?? '-' }} {{ ucfirst(str_replace('_', ' ', $complaint->category)) }} {{ $complaint->dispatches->first()->unit_type ?? '-' }} {{ ucfirst($complaint->status) }}

Koordinasi

Internal & Eksternal

Kelola komunikasi antar instansi dan unit

Laporan Lapangan

Dari Petugas

Lihat laporan dan dokumentasi dari petugas lapangan

Knowledge Center

Edukasi & Panduan

Akses panduan keselamatan dan edukasi

@endsection @push('scripts') @endpush