<?php
/**
 * MCSManager API 代理
 * 用于转发前端请求到 MCSManager 后端 API，避免跨域问题
 */

// 配置信息 - 请根据实际情况修改
$config = [
    'api_base_url' => 'http://114.66.55.103:23333/api', // 请替换为实际的 API 基础 URL
    'api_key' => '40d7b2d8df484458816e80c4c9d26f7e', // 重要：请替换为实际 API Key
    'timeout' => 10,
];

// 处理预检请求
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    exit;
}

// 获取请求路径
$path = $_GET['path'] ?? '';
unset($_GET['path']);

// 构建API URL（自动添加api_key参数）
$url = "{$config['api_base_url']}/{$path}?apikey={$config['api_key']}";

// 添加GET参数（如果有）
if (!empty($_GET)) {
    $url .= '&' . http_build_query($_GET);
}

// 初始化CURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $config['timeout']);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

// 添加自定义请求头
$headers = [
    'X-Requested-With: XMLHttpRequest', // 添加此行
    'Content-Type: application/json',   // 确保 JSON 格式请求头
];

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

// 处理POST请求
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    curl_setopt($ch, CURLOPT_POST, true);
    
    // 根据Content-Type处理请求体
    $contentType = $_SERVER['CONTENT_TYPE'] ?? '';
    if (strpos($contentType, 'application/json') !== false) {
        // JSON格式请求体
        $requestBody = file_get_contents('php://input');
        curl_setopt($ch, CURLOPT_POSTFIELDS, $requestBody);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array_merge($headers, [
            'Content-Length: ' . strlen($requestBody)
        ]));
    } else {
        // 表单格式请求体
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST));
    }
}

// 执行请求
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);

// 处理响应
if ($error) {
    http_response_code(500);
    echo json_encode([
        'code' => 500,
        'message' => '代理请求失败',
        'error' => $error,
        'api_url' => $url // 添加请求的地址
    ]);
} else {
    http_response_code($httpCode);
    // 将请求的地址添加到响应中
    $responseJson = json_decode($response, true);
    echo $response;
}
exit;
?>