<?php
// Arquivo: cadastro_administrador.php
// Responsável pelo formulário de cadastro de administradores

// Iniciar a sessão ANTES de qualquer output
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

require_once 'middleware-auth.php';
authAdministrador();

require_once 'conexao.php';
require_once 'env.php';

// Gerar token CSRF para o formulário
if (empty($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}

// Rastrear o acesso usando $pdo
if (isset($_SESSION['id']) && isset($_SESSION['role']) && $pdo) {
    try {
        $usuario_id_sessao = $_SESSION['id'];
        $role_sessao = $_SESSION['role'];
        $role_map_hist = [
            'Empresas' => 'empresa',
            'Candidatos' => 'candidato',
            'Administradores' => 'admin'
        ];
        $tipo_usuario_hist = $role_map_hist[$role_sessao] ?? 'desconhecido';
        $pagina_acessada_hist = $_SERVER['REQUEST_URI'];
        
        $sql_inserir_hist = "INSERT INTO historico_acessos (usuario_id, tipo_usuario, pagina_acessada, data_acesso) VALUES (?, ?, ?, NOW())";
        $stmt_hist = $pdo->prepare($sql_inserir_hist);
        $stmt_hist->execute([$usuario_id_sessao, $tipo_usuario_hist, $pagina_acessada_hist]);
    } catch (PDOException $e) {
        error_log("Erro ao registrar histórico de acesso em cadastro_administrador.php: " . $e->getMessage());
    }
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cadastrar Administrador - Self Lix</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
    <style>
        /* Estilos CSS permanecem os mesmos */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: Arial, sans-serif;
            background-color: #f4f4f4;
            color: #333;
            line-height: 1.6;
            padding: 20px;
        }
        
        .container {
            width: 100%;
            max-width: 450px;
            margin: 20px auto;
            background-color: white;
            padding: 25px;
            border-radius: 8px;
            box-shadow: 0 0 15px rgba(0,0,0,0.1);
        }
        
        h2 {
            text-align: center;
            margin-bottom: 20px;
            color: #12929e;
            font-size: 24px;
        }
        
        form {
            display: flex;
            flex-direction: column;
        }
        
        .form-group {
            margin-bottom: 25px;
        }
        
        label {
            display: block;
            margin-bottom: 6px;
            font-weight: bold;
            color: #444;
        }
        
        input.form-control {
            width: 100%;
            padding: 12px;
            border: 1px solid #ddd;
            border-radius: 5px;
            font-size: 16px;
            transition: border-color 0.3s, box-shadow 0.3s;
        }
        
        input.form-control:focus {
            border-color: #12929e;
            box-shadow: 0 0 5px rgba(18, 146, 158, 0.4);
            outline: none;
        }
        
        button {
            background-color: #12929e;
            color: white;
            border: none;
            padding: 12px;
            border-radius: 5px;
            cursor: pointer;
            transition: all 0.3s;
            font-size: 16px;
            font-weight: bold;
            margin-top: 5px;
            width: 100%;
        }
        
        button:hover {
            background-color: #0e7a84;
            transform: translateY(-2px);
        }
        
        button:active {
            transform: translateY(0);
        }
        
        .voltar {
            display: block;
            text-align: center;
            margin-top: 20px;
            text-decoration: none;
            color: #12929e;
            font-weight: bold;
            transition: color 0.3s;
        }
        
        .voltar:hover {
            color: #0e7a84;
            text-decoration: underline;
        }
        
        /* Estilos para o modal */
        .modal-header .modal-title {
            font-weight: bold;
        }
        
        .modal-body i {
            font-size: 24px;
            margin-right: 10px;
        }
        
        /* Classes para cores das mensagens no modal (se necessário) */
        .modal-header.success-bg {
            background-color: #d4edda;
            color: #155724;
        }
        
        .modal-header.error-bg {
            background-color: #f8d7da;
            color: #721c24;
        }
    </style>
</head>
<body>
    <div class="container">
        <h2>Cadastrar Administrador</h2>
        
        <form action="processar_cadastro_adm.php" method="post">
            <input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token']); ?>">
            
            <div class="form-group">
                <label for="nome">Nome:</label>
                <input type="text" id="nome" name="nome" class="form-control" required
                       maxlength="255"
                       pattern="[A-Za-zÀ-ÿ\s]+"
                       title="Apenas letras e espaços são permitidos"
                       placeholder="Digite o nome completo"
                       value="<?php echo htmlspecialchars($_SESSION['form_data_adm_cadastro']['nome'] ?? ''); ?>">
                <div class="form-hint">Apenas letras e espaços são permitidos</div>
            </div>
            
            <div class="form-group">
                <label for="login">Email (Login):</label>
                <input type="email" id="login" name="login" class="form-control" required
                       maxlength="100"
                       placeholder="email@exemplo.com"
                       value="<?php echo htmlspecialchars($_SESSION['form_data_adm_cadastro']['login'] ?? ''); ?>">
                <div class="form-hint">Será utilizado como login no sistema</div>
            </div>
            
            <div class="form-group">
                <label for="senha">Senha:</label>
                <input type="password" id="senha" name="senha" class="form-control" required
                       minlength="8"
                       pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
                       title="Deve conter pelo menos 8 caracteres, incluindo uma letra maiúscula, uma letra minúscula e um número"
                       placeholder="Crie uma senha segura">
                <div class="form-hint">Mínimo 8 caracteres, incluindo letra maiúscula, minúscula e número</div>
            </div>
            
            <button type="submit"><i class="fas fa-user-plus"></i> Cadastrar</button>
        </form>
        
        <a href="painel-adm.php" class="voltar"><i class="fas fa-arrow-left"></i> Voltar ao Painel</a>
    </div>

    <div class="modal fade" id="mensagemModal" tabindex="-1" aria-labelledby="mensagemModalLabel" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header" id="modalHeader">
                    <h5 class="modal-title" id="mensagemModalLabel"></h5>
                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body" id="mensagemModalBody">
                    </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Fechar</button>
                </div>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            // Lógica para exibir o modal com a mensagem
            const mensagemErro = "<?php echo isset($_SESSION['mensagem_erro']) ? htmlspecialchars($_SESSION['mensagem_erro']) : ''; unset($_SESSION['mensagem_erro']); unset($_SESSION['form_data_adm_cadastro']); ?>";
            const mensagemSucesso = "<?php echo isset($_SESSION['mensagem_sucesso']) ? htmlspecialchars($_SESSION['mensagem_sucesso']) : ''; unset($_SESSION['mensagem_sucesso']); ?>";
            
            const modal = new bootstrap.Modal(document.getElementById('mensagemModal'));
            const modalHeader = document.getElementById('modalHeader');
            const modalTitle = document.getElementById('mensagemModalLabel');
            const modalBody = document.getElementById('mensagemModalBody');
            
            if (mensagemErro) {
                modalHeader.classList.add('error-bg');
                modalTitle.textContent = "Erro!";
                modalBody.innerHTML = `<i class="fas fa-exclamation-circle text-danger"></i><span>${mensagemErro}</span>`;
                modal.show();
            } else if (mensagemSucesso) {
                modalHeader.classList.add('success-bg');
                modalTitle.textContent = "Sucesso!";
                modalBody.innerHTML = `<i class="fas fa-check-circle text-success"></i><span>${mensagemSucesso}</span>`;
                modal.show();
                
                // Redireciona após 3 segundos
                setTimeout(() => {
                    window.location.href = "painel-adm.php";
                }, 3000);
            }

            // Lógica original de validação visual do formulário
            const form = document.querySelector('form');
            if (form) {
                const inputs = form.querySelectorAll('input[required]');
                
                inputs.forEach(input => {
                    input.addEventListener('input', function() {
                        this.style.borderColor = this.checkValidity() ? '#12929e' : '#d63031';
                    });
                    
                    if (input.value !== '') {
                        input.style.borderColor = input.checkValidity() ? '#12929e' : '#d63031';
                    }
                });
            }
        });
    </script>
</body>
</html>