'failure', 'message' => 'Unauthorized access. Admin role required.']); exit; } // 2. Fetch anomalies try { $limit = filterRequest('limit', 'int') ?? 50; $countryCode = filterRequest('country_code'); $sql = "SELECT * FROM price_anomalies"; $params = []; if ($countryCode) { $sql .= " WHERE country_code = :country"; $params[':country'] = strtoupper($countryCode); } $sql .= " ORDER BY created_at DESC LIMIT :limit"; $stmt = $con->prepare($sql); $stmt->bindValue(':limit', $limit, PDO::PARAM_INT); foreach ($params as $key => $val) { $stmt->bindValue($key, $val); } $stmt->execute(); $anomalies = $stmt->fetchAll(PDO::FETCH_ASSOC); // Fetch some recent competitor prices for context $sqlPrices = "SELECT * FROM competitor_prices"; $paramsPrices = []; if ($countryCode) { $sqlPrices .= " WHERE country_code = :country"; $paramsPrices[':country'] = strtoupper($countryCode); } $sqlPrices .= " ORDER BY created_at DESC LIMIT 20"; $stmtPrices = $con->prepare($sqlPrices); foreach ($paramsPrices as $key => $val) { $stmtPrices->bindValue($key, $val); } $stmtPrices->execute(); $recentPrices = $stmtPrices->fetchAll(PDO::FETCH_ASSOC); jsonSuccess([ 'anomalies' => $anomalies, 'recent_prices' => $recentPrices ]); } catch (Exception $e) { error_log("[get_market_anomalies.php] Error: " . $e->getMessage()); jsonError("Failed to fetch market anomalies: " . $e->getMessage()); }