false, 'message' => 'Method not allowed']); exit(); } // ── BACA JSON BODY ───────────────────────────────────────────────────────────── $body = file_get_contents('php://input'); $data = json_decode($body, true); if (!$data) { http_response_code(400); echo json_encode(['success' => false, 'message' => 'Data tidak valid (JSON parse error)']); exit(); } // ── VALIDASI ────────────────────────────────────────────────────────────────── $nama_spbu = trim($data['nama_spbu'] ?? ''); $nomor_spbu = trim($data['nomor_spbu'] ?? ''); $status = trim($data['status'] ?? ''); $latitude = floatval($data['latitude'] ?? 0); $longitude = floatval($data['longitude'] ?? 0); $valid_status = ['Buka 24 Jam', 'Tidak Buka 24 Jam']; if (empty($nama_spbu)) { echo json_encode(['success' => false, 'message' => 'Nama SPBU tidak boleh kosong']); exit(); } if (empty($nomor_spbu)) { echo json_encode(['success' => false, 'message' => 'Nomor SPBU tidak boleh kosong']); exit(); } if (!in_array($status, $valid_status)) { echo json_encode(['success' => false, 'message' => 'Status tidak valid']); exit(); } if ($latitude === 0.0 && $longitude === 0.0) { echo json_encode(['success' => false, 'message' => 'Koordinat tidak valid']); exit(); } // ── INSERT DATA ─────────────────────────────────────────────────────────────── try { $stmt = $pdo->prepare(" INSERT INTO spbu (nama_spbu, nomor_spbu, status, latitude, longitude, created_at) VALUES (:nama_spbu, :nomor_spbu, :status, :latitude, :longitude, NOW()) "); $stmt->execute([ ':nama_spbu' => $nama_spbu, ':nomor_spbu' => $nomor_spbu, ':status' => $status, ':latitude' => $latitude, ':longitude' => $longitude, ]); echo json_encode([ 'success' => true, 'message' => 'Data SPBU berhasil disimpan', 'id' => $pdo->lastInsertId() ]); } catch (PDOException $e) { http_response_code(500); echo json_encode(['success' => false, 'message' => 'Gagal menyimpan data: ' . $e->getMessage()]); }