<?php
/**
 * Arquivo de Rotas e Configurações do Dashboard
 * Centraliza o roteamento e ajuda a evitar problemas de carregamento
 */

// Páginas permitidas no sistema
$allowed_pages = [
    'dashboard' => [
        'file' => 'dashboard.php',
        'title' => 'Visão Geral',
        'icon' => 'fa-chart-pie'
    ],
    'produtos' => [
        'file' => 'produtos.php',
        'title' => 'Gestão de Produtos',
        'icon' => 'fa-box-open'
    ],
    'produtos_test' => [
        'file' => 'produtos_test.php',
        'title' => 'Teste de Produtos',
        'icon' => 'fa-box-open'
    ],
    'pedidos' => [
        'file' => 'pedidos.php',
        'title' => 'Pedidos Realizados',
        'icon' => 'fa-shopping-cart'
    ],
    'carrinhos' => [
        'file' => 'carrinhos.php',
        'title' => 'Recuperação de Vendas',
        'icon' => 'fa-cart-arrow-down'
    ],
    'pixel' => [
        'file' => 'pixel.php',
        'title' => 'Pixel & Rastreamento',
        'icon' => 'fa-bullhorn'
    ],
    'credenciais' => [
        'file' => 'credenciais.php',
        'title' => 'Configuração de Checkout',
        'icon' => 'fa-credit-card'
    ],
    'saques' => [
        'file' => 'saques.php',
        'title' => 'Gestão de Saques',
        'icon' => 'fa-money-bill-wave'
    ],
    'usuarios' => [
        'file' => 'usuarios.php',
        'title' => 'Gerenciamento de Usuários',
        'icon' => 'fa-users'
    ],
    'customizacao' => [
        'file' => 'customizacao.php',
        'title' => 'Customização do Sistema',
        'icon' => 'fa-palette'
    ],
    'suporte' => [
        'file' => 'suporte.php',
        'title' => 'Chat de Suporte',
        'icon' => 'fa-headset'
    ],
    'notificacoes' => [
        'file' => 'notificacoes.php',
        'title' => 'Enviar Notificações',
        'icon' => 'fa-bell'
    ],
    'configuracoes_admin' => [
        'file' => 'configuracoes_admin.php',
        'title' => 'Configurações',
        'icon' => 'fa-cog'
    ],
    'meus_afiliados' => [
        'file' => 'meus_afiliados.php',
        'title' => 'Visão Geral de Afiliados',
        'icon' => 'fa-user-friends'
    ]
];

/**
 * Função para carregar uma página de forma segura
 */
function loadPage($pageName, $pagesDir = 'pages/') {
    global $allowed_pages;
    
    // Verificar se a página existe e é permitida
    if (!isset($allowed_pages[$pageName])) {
        return [
            'success' => false,
            'error' => 'Página não encontrada',
            'content' => '<div style="color: var(--text-muted); text-align: center; margin-top: 50px; font-size: 1.2rem;"><i class="fas fa-exclamation-triangle"></i> Página não encontrada.</div>'
        ];
    }
    
    $pageConfig = $allowed_pages[$pageName];
    $filePath = $pagesDir . $pageConfig['file'];
    
    // Verificar se o arquivo existe
    if (!file_exists($filePath)) {
        return [
            'success' => false,
            'error' => 'Arquivo da página não encontrado',
            'content' => '<div style="color: var(--text-muted); text-align: center; margin-top: 50px; font-size: 1.2rem;"><i class="fas fa-exclamation-triangle"></i> Arquivo da página não encontrado.</div>'
        ];
    }
    
    // Capturar o conteúdo da página
    ob_start();
    try {
        include $filePath;
        $content = ob_get_clean();
        return [
            'success' => true,
            'content' => $content,
            'title' => $pageConfig['title']
        ];
    } catch (Exception $e) {
        ob_end_clean();
        error_log("Erro ao carregar página {$pageName}: " . $e->getMessage());
        return [
            'success' => false,
            'error' => $e->getMessage(),
            'content' => '<div style="color: var(--text-muted); text-align: center; margin-top: 50px; font-size: 1.2rem;"><i class="fas fa-exclamation-triangle"></i> Erro ao carregar a página. Tente novamente.</div>'
        ];
    }
}

/**
 * Função para obter o título da página
 */
function getPageTitle($pageName) {
    global $allowed_pages;
    return isset($allowed_pages[$pageName]) ? $allowed_pages[$pageName]['title'] : 'Painel de Controle';
}

/**
 * Função para verificar se uma página é válida
 */
function isValidPage($pageName) {
    global $allowed_pages;
    return isset($allowed_pages[$pageName]);
}
?>

