prepare($sql); $stmt->execute($params); json_response(['success' => true, 'data' => $stmt->fetchAll()]); } if ($method === 'POST') { $data = get_json_input(); required_fields($data, ['anggota_id','jenis_program','nama_program']); $anggotaId = clean_int($data['anggota_id']); $stmtA = $pdo->prepare('SELECT ka.*, k.rumah_ibadah_id FROM keluarga_anggota ka JOIN keluarga k ON k.id = ka.keluarga_id WHERE ka.id = ? LIMIT 1'); $stmtA->execute([$anggotaId]); $anggota = $stmtA->fetch(); if (!$anggota) json_response(['success' => false, 'message' => 'Anggota keluarga tidak ditemukan.'], 404); if ($anggota['mampu_bekerja'] !== 'Ya') json_response(['success' => false, 'message' => 'Program pemberdayaan hanya untuk anggota yang masih mampu bekerja.'], 422); if ($role === 'rumah_ibadah' && (int)$anggota['rumah_ibadah_id'] !== (int)($user['rumah_ibadah_id'] ?? 0)) { json_response(['success' => false, 'message' => 'Pengurus hanya dapat menambah program untuk keluarga tanggungannya.'], 403); } $status = allow_enum_value($data['status'] ?? 'Direkomendasikan', ['Direkomendasikan','Berjalan','Selesai','Batal','Mandiri'], 'Direkomendasikan'); $stmt = $pdo->prepare('INSERT INTO pemberdayaan (anggota_id, keluarga_id, jenis_program, nama_program, penyelenggara, tanggal_mulai, status, catatan, created_by) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)'); $stmt->execute([ $anggotaId, (int)$anggota['keluarga_id'], allow_enum_value($data['jenis_program'], ['Pelatihan Kerja','Modal Usaha','Pendampingan UMKM','Penempatan Kerja','Bantuan Alat Kerja','Lainnya'], 'Pelatihan Kerja'), clean_string($data['nama_program']), clean_string($data['penyelenggara'] ?? ''), clean_string($data['tanggal_mulai'] ?? '') ?: null, $status, clean_string($data['catatan'] ?? ''), $user['id'] ]); $statusAnggota = $status === 'Mandiri' ? 'Mandiri' : ($status === 'Berjalan' ? 'Dalam Program' : 'Layak Diberdayakan'); $pdo->prepare('UPDATE keluarga_anggota SET status_pemberdayaan = ? WHERE id = ?')->execute([$statusAnggota, $anggotaId]); json_response(['success' => true, 'message' => 'Program pemberdayaan berhasil dicatat.'], 201); } json_response(['success' => false, 'message' => 'Method tidak didukung.'], 405);