query("SELECT COUNT(*) AS total, SUM(status_ekonomi='miskin') AS miskin, SUM(status_ekonomi='rentan') AS rentan, SUM(status_ekonomi='mampu') AS mampu FROM penduduk WHERE status_hidup='hidup'"); $stats['penduduk'] = $r->fetch_assoc(); // Rumah ibadah $r2 = $conn->query("SELECT COUNT(*) AS total FROM rumah_ibadah"); $stats['rumah_ibadah'] = $r2->fetch_assoc(); // Laporan pending / darurat $r3 = $conn->query("SELECT COUNT(*) AS total, SUM(urgensi='darurat') AS darurat, SUM(status='pending') AS pending FROM laporan"); $stats['laporan'] = $r3->fetch_assoc(); // Bantuan bulan ini $r4 = $conn->query("SELECT COUNT(*) AS total, SUM(status='selesai') AS selesai FROM histori_bantuan WHERE MONTH(tanggal)=MONTH(CURDATE()) AND YEAR(tanggal)=YEAR(CURDATE())"); $stats['bantuan_bulan_ini'] = $r4->fetch_assoc(); // Belum pernah dibantu (miskin) $r5 = $conn->query("SELECT COUNT(*) AS total FROM penduduk p WHERE p.status_ekonomi='miskin' AND p.status_hidup='hidup' AND NOT EXISTS (SELECT 1 FROM histori_bantuan h WHERE h.penduduk_id=p.id AND h.status='selesai')"); $stats['miskin_belum_dibantu'] = $r5->fetch_assoc(); // Sebaran per rumah ibadah $r6 = $conn->query("SELECT ri.nama, ri.jenis, COUNT(p.id) AS jumlah_penduduk, SUM(p.status_ekonomi='miskin') AS miskin FROM rumah_ibadah ri LEFT JOIN penduduk p ON p.rumah_ibadah_id=ri.id AND p.status_hidup='hidup' GROUP BY ri.id"); $stats['per_rumah_ibadah'] = $r6->fetch_all(MYSQLI_ASSOC); // Tren bantuan 6 bulan terakhir $r7 = $conn->query("SELECT DATE_FORMAT(tanggal,'%Y-%m') AS bulan, COUNT(*) AS total FROM histori_bantuan WHERE tanggal >= DATE_SUB(CURDATE(), INTERVAL 6 MONTH) GROUP BY bulan ORDER BY bulan"); $stats['tren_bantuan'] = $r7->fetch_all(MYSQLI_ASSOC); echo json_encode($stats, JSON_UNESCAPED_UNICODE);