false, 'message' => 'Metode tidak diizinkan.']); exit; } require_once __DIR__ . '/koneksi.php'; $body = file_get_contents('php://input'); $data = json_decode($body, true); if (!$data) { http_response_code(400); echo json_encode(['success' => false, 'message' => 'Body request tidak valid.']); exit; } $required = ['nama_pemilik', 'status', 'luas', 'geom']; foreach ($required as $field) { if (!isset($data[$field])) { http_response_code(422); echo json_encode(['success' => false, 'message' => "Field '$field' wajib diisi."]); exit; } if (!is_array($data[$field]) && trim((string)$data[$field]) === '') { http_response_code(422); echo json_encode(['success' => false, 'message' => "Field '$field' tidak boleh kosong."]); exit; } } $nama_pemilik = trim($data['nama_pemilik']); $status = $data['status']; $luas = (float) $data['luas']; $geom = is_array($data['geom']) ? json_encode($data['geom']) : $data['geom']; if (!in_array($status, ['SHM', 'HGB', 'HGU', 'HP'], true)) { http_response_code(422); echo json_encode(['success' => false, 'message' => "Status parsil tidak valid."]); exit; } $conn = getConnection(); $sql = "INSERT INTO parsil (nama_pemilik, status, luas, geom) VALUES (?, ?, ?, ?)"; $stmt = $conn->prepare($sql); if (!$stmt) { http_response_code(500); echo json_encode(['success' => false, 'message' => 'Gagal menyiapkan query: ' . $conn->error]); $conn->close(); exit; } $stmt->bind_param('ssds', $nama_pemilik, $status, $luas, $geom); if ($stmt->execute()) { $newId = $stmt->insert_id; http_response_code(201); echo json_encode([ 'success' => true, 'message' => 'Data Parsil berhasil disimpan.', 'data' => [ 'id' => $newId, 'nama_pemilik' => $nama_pemilik, 'status' => $status, 'luas' => $luas, 'geom' => json_decode($geom, true), ], ]); } else { http_response_code(500); echo json_encode(['success' => false, 'message' => 'Gagal menyimpan data: ' . $stmt->error]); } $stmt->close(); $conn->close();