false, 'message' => 'ID jalan tidak valid.', ]); } if ($namaJalan === '' || !in_array($status, $allowedStatus, true)) { json_response(422, [ 'success' => false, 'message' => 'Nama jalan wajib diisi dan status harus nasional/provinsi/kabupaten.', ]); } if ($panjangMeter <= 0) { json_response(422, [ 'success' => false, 'message' => 'Panjang jalan harus lebih dari 0 meter.', ]); } $sql = 'UPDATE jalan SET nama_jalan = :nama_jalan, status = :status, panjang_meter = :panjang_meter, geom = ST_GeomFromText(:wkt), updated_at = CURRENT_TIMESTAMP WHERE id = :id'; $stmt = $pdo->prepare($sql); $stmt->execute([ ':id' => $id, ':nama_jalan' => $namaJalan, ':status' => $status, ':panjang_meter' => $panjangMeter, ':wkt' => $wkt, ]); if ($stmt->rowCount() < 1) { $checkStmt = $pdo->prepare('SELECT id FROM jalan WHERE id = :id LIMIT 1'); $checkStmt->execute([':id' => $id]); if (!$checkStmt->fetch()) { json_response(404, [ 'success' => false, 'message' => 'Data jalan tidak ditemukan.', ]); } } json_response(200, [ 'success' => true, 'message' => 'Data jalan berhasil diperbarui.', ]);