query("SELECT id, kode, nama, deskripsi FROM jenis_bantuan ORDER BY id")->fetchAll(), 'Jenis Bantuan'); } $wargaId = $_GET['warga_id'] ?? null; if (!$wargaId) sendError('warga_id wajib'); $stmt = $pdo->prepare(" SELECT bs.id, bs.jenis_bantuan_id, jb.kode, jb.nama, bs.tgl_mulai, bs.tgl_berakhir, bs.is_aktif, bs.keterangan FROM bantuan_sosial bs JOIN jenis_bantuan jb ON jb.id = bs.jenis_bantuan_id WHERE bs.warga_id = ? ORDER BY bs.id DESC "); $stmt->execute([$wargaId]); sendSuccess($stmt->fetchAll(), 'Bantuan warga'); break; case 'POST': $d = getInput(); if (empty($d['warga_id']) || empty($d['jenis_bantuan_id'])) sendError('warga_id & jenis_bantuan_id wajib'); $pdo->prepare(" INSERT INTO bantuan_sosial (warga_id, jenis_bantuan_id, tgl_mulai, tgl_berakhir, is_aktif, keterangan) VALUES (?,?,?,?,?,?) ")->execute([ $d['warga_id'], $d['jenis_bantuan_id'], ($d['tgl_mulai'] ?? '') ?: null, ($d['tgl_berakhir'] ?? '') ?: null, isset($d['is_aktif']) ? (int)$d['is_aktif'] : 1, ($d['keterangan'] ?? '') ?: null, ]); $id = (int)$pdo->lastInsertId(); logActivity($pdo, 'create', 'bantuan_sosial', $id, "Tambah bantuan warga #{$d['warga_id']}"); sendSuccess(['id' => $id], 'Bantuan ditambahkan', 201); break; case 'DELETE': $id = $_GET['id'] ?? null; if (!$id) sendError('ID wajib'); $pdo->prepare("DELETE FROM bantuan_sosial WHERE id=?")->execute([$id]); logActivity($pdo, 'delete', 'bantuan_sosial', (int)$id, 'Hapus bantuan'); sendSuccess(null, 'Bantuan dihapus'); break; default: sendError('Method not allowed', 405); }