<?php
// 前台入口文件
require_once 'init.php';

// 视图偏好：允许用户选择 PC/移动端，并记住偏好
$view = $_GET['view'] ?? '';
if (in_array($view, ['mobile', 'desktop'], true)) {
    setcookie('site_view', $view, time() + 86400 * 30, '/');
}

$preferredView = $_COOKIE['site_view'] ?? '';

// 如果是移动设备访问，自动跳转到移动端（除非用户明确请求桌面版）
if (isMobileDevice() && !isset($_GET['desktop']) && $view !== 'desktop') {
    $redirectUrl = './mobile/router.php';
    if ($_SERVER['QUERY_STRING']) {
        $redirectUrl .= '?' . $_SERVER['QUERY_STRING'];
    }
    header('Location: ' . $redirectUrl);
    exit;
}

// 如果用户显式请求移动端视图，则强制重定向
if (isMobileDevice() && $view === 'mobile') {
    $redirectUrl = './mobile/router.php';
    if ($_SERVER['QUERY_STRING']) {
        $redirectUrl .= '?' . $_SERVER['QUERY_STRING'];
    }
    header('Location: ' . $redirectUrl);
    exit;
}

// 根据请求路由到相应的控制器
$controller = $_GET['c'] ?? 'home';
$action = $_GET['a'] ?? 'index';

// 防止路径遍历攻击
$controller = preg_replace('/[^a-zA-Z0-9_-]/', '', $controller);
$action = preg_replace('/[^a-zA-Z0-9_-]/', '', $action);

// 默认控制器
if (empty($controller)) {
    $controller = 'home';
}

// 加载对应的控制器 - 修正：使用ucfirst确保首字母大写
// 对于用户功能，使用FrontUserController而不是UserController
$controllerKey = strtolower($controller);
if ($controllerKey === 'user') {
    $controllerFile = __DIR__ . '/controllers/FrontUserController.php';
    $controllerName = 'FrontUserController';
} elseif ($controllerKey === 'frontsms') {
    $controllerFile = __DIR__ . '/controllers/FrontSmsController.php';
    $controllerName = 'FrontSmsController';
} elseif ($controllerKey === 'activity') {
    $controllerFile = __DIR__ . '/controllers/FrontActivityController.php';
    $controllerName = 'FrontActivityController';
} elseif ($controllerKey === 'property') {
    $controllerFile = __DIR__ . '/controllers/FrontPropertyController.php';
    $controllerName = 'FrontPropertyController';
} elseif ($controllerKey === 'solarcalculator') {
    $controllerFile = __DIR__ . '/controllers/SolarCalculatorController.php';
    $controllerName = 'SolarCalculatorController';
} else {
    $controllerFile = __DIR__ . '/controllers/' . ucfirst($controller) . 'Controller.php';
    $controllerName = ucfirst($controller) . 'Controller';
}

if (file_exists($controllerFile)) {
    require_once $controllerFile;
    
    if (class_exists($controllerName)) {
        $obj = new $controllerName();
        if (method_exists($obj, $action)) {
            $obj->$action();
        } else {
            // 方法不存在，显示404页面
            include __DIR__ . '/views/front/404.php';
        }
    } else {
        // 控制器类不存在，显示404页面
        include __DIR__ . '/views/front/404.php';
    }
} else {
    // 控制器文件不存在，显示404页面
    include __DIR__ . '/views/front/404.php';
}
?>