'failure', 'message' => 'Unauthorized']); exit; } try { $countryCode = resolveAdminCountry(filterRequest('country_code'), $role, $admin_country ?? null); if (!$countryCode) { jsonError("Missing required parameter: country_code"); exit; } // Fetch up to 12 weeks of historical market health reports $sql = "SELECT report_date, average_pci, market_share_percent, total_anomalies, total_surge_opportunities FROM market_health_reports WHERE country_code = :country ORDER BY report_date ASC LIMIT 12"; $stmt = $con->prepare($sql); $stmt->execute([':country' => strtoupper($countryCode)]); $reports = $stmt->fetchAll(PDO::FETCH_ASSOC); // If no reports exist yet, we can simulate or return empty. // For now, we return exactly what is in the DB. $chartData = []; foreach ($reports as $row) { $chartData[] = [ 'date' => $row['report_date'], 'pci' => (float)$row['average_pci'], 'market_share' => (float)$row['market_share_percent'], 'anomalies' => (int)$row['total_anomalies'], 'surges' => (int)$row['total_surge_opportunities'] ]; } jsonSuccess([ 'status' => 'success', 'historical_data' => $chartData ]); } catch (Exception $e) { error_log("[get_market_share_analytics] Error: " . $e->getMessage()); jsonError("Failed to fetch analytics"); }