<?php
/**
 * 一车一码交互系统 - 统一入口与路由
 * 独立部署，不依赖任何旧系统框架
 */

// 错误报告控制 (生产环境建议关闭)
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
ini_set('display_errors', 0);

// 加载配置
$config = require __DIR__ . '/config.php';

// 核心逻辑加载
require __DIR__ . '/core.php';

// 路由分发
$action = $_GET['action'] ?? '';
$method = $_SERVER['REQUEST_METHOD'];

// 全局响应头
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, Authorization');

if ($method === 'OPTIONS') {
    exit(0);
}

// 实例化核心处理器
$core = new SpaceCore($config);

try {
    switch ($action) {
        case 'login':
            // 微信登录 / 获取 OpenID & UnionID
            echo json_encode($core->login($_POST['code'] ?? ''));
            break;
            
        case 'space_join':
            // 扫码进入空间 / 验证密码 / 加入成员
            echo json_encode($core->joinSpace(
                $_POST['vehicle_code'] ?? '',
                $_POST['password'] ?? '',
                $_POST['openid'] ?? '',
                $_POST['role'] ?? 'owner'
            ));
            break;
            
        case 'msg_send':
            // 发送消息 (文本/图片/卡片)
            echo json_encode($core->sendMessage(
                $_POST['space_id'] ?? 0,
                $_POST['from_id'] ?? 0,
                $_POST['card_type'] ?? 'text',
                $_POST['card_data'] ?? '',
                $_POST['openid'] ?? ''
            ));
            break;
            
        case 'msg_list':
            // 获取消息列表 (分页拉取)
            echo json_encode($core->getMessageList(
                $_GET['space_id'] ?? 0,
                $_GET['last_id'] ?? 0,
                $_GET['limit'] ?? 20
            ));
            break;
            
        case 'sensitive_check':
            // 敏感词检测接口 (供前端预览使用)
            echo json_encode($core->checkSensitive($_POST['content'] ?? ''));
            break;
            
        default:
            echo json_encode(['code' => 404, 'msg' => '未知接口', 'data' => null]);
    }
} catch (Exception $e) {
    echo json_encode(['code' => 500, 'msg' => $e->getMessage(), 'data' => null]);
}
