<?php
// Configurações de sessão
ini_set('session.cookie_secure', 1);
ini_set('session.cookie_httponly', 1);
ini_set('session.use_strict_mode', 1);
session_start();

// === CSRF helper ===
if (!isset($_SESSION['csrf_tokens']) || !is_array($_SESSION['csrf_tokens'])) {
    $_SESSION['csrf_tokens'] = [];
}

function csrf_gc($ttl = 7200) {
    $now = time();
    foreach ($_SESSION['csrf_tokens'] as $t => $ts) {
        if ($now - (int)$ts > $ttl) {
            unset($_SESSION['csrf_tokens'][$t]);
        }
    }
}

function csrf_issue($ttl = 7200) {
    csrf_gc($ttl);
    $token = bin2hex(random_bytes(32));
    $_SESSION['csrf_tokens'][$token] = time();
    return $token;
}

function csrf_validate($token, $ttl = 7200, $consume = true) {
    csrf_gc($ttl);
    if (!$token) return false;
    if (!isset($_SESSION['csrf_tokens'][$token])) return false;
    $age = time() - (int)$_SESSION['csrf_tokens'][$token];
    $ok = $age <= $ttl;
    if ($consume) {
        unset($_SESSION['csrf_tokens'][$token]);
    }
    return $ok && $age >= 0;
}

// Verificar se o usuário está logado
if (!isset($_SESSION['logado'])) {
    header('Location: login.php');
    exit;
}

// Verificar tenant_id
$tenant_id = $_SESSION['tenant_id'] ?? null;
if (!$tenant_id || !is_numeric($tenant_id)) {
    die("Tenant não identificado.");
}

// CSRF token
$csrf_token = csrf_issue();

// Conexão com o banco de dados
require_once 'conexao.php';

// Buscar formulários existentes
$formularios = [];
$query = "SELECT id, nome, tipo, temperatura, criado_em FROM formularios WHERE tenant_id = ? ORDER BY criado_em DESC";
$stmt = $conn->prepare($query);
if ($stmt) {
    $stmt->bind_param("i", $tenant_id);
    $stmt->execute();
    $result = $stmt->get_result();
    $formularios = $result->fetch_all(MYSQLI_ASSOC);
    $stmt->close();
} else {
    error_log("Erro na consulta: " . $conn->error);
}
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon_io/favicon-16x16.png">
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon_io/favicon-32x32.png">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Formulários - SON</title>
    <meta name="csrf-token" content="<?= htmlspecialchars($csrf_token) ?>">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f5f5f5;
        }
        
        .header-fixed {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            background-color: #f5f5f5;
            padding: 15px 20px;
            z-index: 1000;
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
            display: flex;
            justify-content: space-between;
            align-items: center;
            height: 80px;
        }
        
        .header-fixed img {
            height: 40px;
            margin-right: 15px;
        }
        
        .header-fixed h2 {
            margin: 0;
            flex-grow: 1;
            text-align: center;
        }
        
        /* Menu Lateral Recolhível - AGORA NA ESQUERDA */
        .sidebar {
            position: fixed;
            left: 0;
            top: 80px;
            height: calc(100vh - 80px);
            width: 60px;
            background: white;
            box-shadow: 2px 0 5px rgba(0,0,0,0.1);
            z-index: 999;
            transition: width 0.3s ease;
            overflow-x: hidden;
        }
        
        /* Conteúdo Principal */
        .main-content {
            margin-top: 80px;
            padding: 20px;
            margin-left: 60px;
            transition: margin-left 0.3s ease;
        }
        
        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 30px;
            background: white;
            border-radius: 8px;
            box-shadow: 0 0 10px rgba(0,0,0,0.1);
        }
        
        .btn {
            background-color: #3498db;
            color: white;
            border: none;
            padding: 12px 20px;
            border-radius: 4px;
            cursor: pointer;
            font-size: 16px;
            transition: background-color 0.3s;
            display: inline-flex;
            align-items: center;
            gap: 5px;
            margin-right: 10px;
            text-decoration: none;
        }
        
        .btn:hover {
            background-color: #2980b9;
        }
        
        .btn-success {
            background-color: #2ecc71;
        }
        
        .btn-success:hover {
            background-color: #27ae60;
        }

        .lista-formularios {
            margin: 20px 0;
            border: 1px solid #ddd;
            border-radius: 5px;
            overflow: hidden;
        }
        
        .lista-formularios table {
            width: 100%;
            border-collapse: collapse;
        }
        
        .lista-formularios th, .lista-formularios td {
            padding: 12px 15px;
            text-align: left;
            border-bottom: 1px solid #ddd;
        }
        
        .lista-formularios th {
            background-color: #f5f5f5;
            font-weight: bold;
        }
        
        .lista-formularios tr:hover {
            background-color: #f9f9f9;
        }
        
        .badge-tipo {
            display: inline-block;
            padding: 4px 8px;
            border-radius: 12px;
            font-size: 12px;
            font-weight: bold;
            margin-left: 8px;
        }
        
        .badge-email {
            background-color: #e3f2fd;
            color: #1976d2;
        }
        
        .badge-questionario {
            background-color: #e8f5e8;
            color: #2e7d32;
        }

        /* Estilo para as ações da tabela */
        .acoes {
            display: flex;
            gap: 5px;
        }
        
        .acoes button {
            background: none;
            border: 1px solid #ddd;
            border-radius: 4px;
            padding: 6px 10px;
            cursor: pointer;
            transition: all 0.3s;
        }
        
        .acoes button:hover {
            background-color: #f5f5f5;
            transform: scale(1.05);
        }
        
        .editar:hover {
            background-color: #e3f2fd;
            border-color: #2196f3;
        }
        
        .excluir:hover {
            background-color: #ffebee;
            border-color: #f44336;
        }
        
        .duplicar:hover {
            background-color: #e8f5e8;
            border-color: #4caf50;
        }

        /* Mensagens */
        .mensagem-flutuante {
            position: fixed;
            top: 80px;
            right: 20px;
            padding: 15px 25px;
            border-radius: 4px;
            color: white;
            z-index: 2000;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            animation: slideIn 0.5s, fadeOut 0.5s 2.5s forwards;
        }
        
        .mensagem-sucesso {
            background-color: #2ecc71;
        }
        
        .mensagem-erro {
            background-color: #e74c3c;
        }
        
        @keyframes slideIn {
            from { transform: translateX(100%); opacity: 0; }
            to { transform: translateX(0); opacity: 1; }
        }
        
        @keyframes fadeOut {
            from { opacity: 1; }
            to { opacity: 0; }
        }

        /* Responsividade */
        @media (max-width: 768px) {
            .header-fixed {
                padding: 12px 15px;
            }
            
            .header-fixed h2 {
                font-size: 1.3rem;
            }
            
            .main-content {
                margin-top: 80px;
                margin-left: 0;
                padding: 15px;
            }
            
            .container {
                padding: 18px;
            }
            
            .acoes {
                flex-direction: column;
            }
        }
    </style>
</head>
<body>


    <?php include 'menu_lateral.php'; ?>

    <div class="main-content">
        <div class="container">
            <h1><i class="fas fa-file-alt"></i> Formulários Existentes</h1>
            
            <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
                <a href="cadastrar_formulario.php" class="btn btn-success">
                    <i class="fas fa-plus"></i> Novo Formulário
                </a>
            </div>
            
            <?php if (empty($formularios)): ?>
                <p>Nenhum formulário criado ainda.</p>
            <?php else: ?>
                <div class="lista-formularios">
                    <table>
                        <thead>
                            <tr>
                                <th>ID</th>
                                <th>Nome</th>
                                <th>Tipo</th>
                                <th>Nota Mínima</th>
                                <th>Criado em</th>
                                <th>Ações</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php foreach ($formularios as $form): ?>
                                <tr>
                                    <td><?= htmlspecialchars($form['id']) ?></td>
                                    <td><?= htmlspecialchars($form['nome']) ?></td>
                                    <td>
                                        <?php if ($form['tipo'] === 'questionario'): ?>
                                            <span class="badge-tipo badge-questionario">Funil</span>
                                        <?php else: ?>
                                            <span class="badge-tipo badge-email">E-mail</span>
                                        <?php endif; ?>
                                    </td>
                                    <td>
                                        <?php if ($form['tipo'] === 'questionario' && $form['temperatura']): ?>
                                            <?= htmlspecialchars($form['temperatura']) ?> pontos
                                        <?php else: ?>
                                            -
                                        <?php endif; ?>
                                    </td>
                                    <td><?= date('d/m/Y H:i', strtotime($form['criado_em'])) ?></td>
                                    <td class="acoes">
                                        <button class="editar" onclick="editarFormulario(<?= $form['id'] ?>)" title="Editar">✏️</button>
                                        <button class="excluir" onclick="confirmarExclusao(<?= $form['id'] ?>, '<?= htmlspecialchars(addslashes($form['nome'])) ?>')" title="Excluir">🗑️</button>
                                        <button class="duplicar" onclick="duplicarFormulario(<?= $form['id'] ?>)" title="Duplicar">⎘</button>
                                    </td>
                                </tr>
                            <?php endforeach; ?>
                        </tbody>
                    </table>
                </div>
            <?php endif; ?>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    <script>
        // Função para confirmar exclusão
        function confirmarExclusao(id, nome) {
            Swal.fire({
                title: 'Confirmar Exclusão',
                text: `Tem certeza que deseja excluir o formulário "${nome}"?`,
                icon: 'warning',
                showCancelButton: true,
                confirmButtonColor: '#d33',
                cancelButtonColor: '#3085d6',
                confirmButtonText: 'Sim, excluir!',
                cancelButtonText: 'Cancelar'
            }).then((result) => {
                if (result.isConfirmed) {
                    excluirFormulario(id);
                }
            });
        }

        // Função para excluir formulário
        function excluirFormulario(id) {
            fetch('formulario_excluir.php', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]').content
                },
                body: JSON.stringify({
                    id: id,
                    csrf_token: document.querySelector('meta[name="csrf-token"]').content
                })
            })
            .then(response => response.json())
            .then(data => {
                if (data.status === 'sucesso') {
                    Swal.fire('Excluído!', 'Formulário excluído com sucesso.', 'success').then(() => {
                        location.reload();
                    });
                } else {
                    Swal.fire('Erro!', 'Erro ao excluir: ' + data.mensagem, 'error');
                }
            })
            .catch(error => {
                console.error('Erro:', error);
                Swal.fire('Erro!', 'Erro ao excluir formulário', 'error');
            });
        }

        // Função para duplicar formulário
        function duplicarFormulario(id) {
            fetch('formulario_duplicar.php', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]').content
                },
                body: JSON.stringify({
                    id: id,
                    csrf_token: document.querySelector('meta[name="csrf-token"]').content
                })
            })
            .then(response => response.json())
            .then(data => {
                if (data.status === 'sucesso') {
                    Swal.fire('Duplicado!', 'Formulário duplicado com sucesso.', 'success').then(() => {
                        location.reload();
                    });
                } else {
                    Swal.fire('Erro!', 'Erro ao duplicar: ' + data.mensagem, 'error');
                }
            })
            .catch(error => {
                console.error('Erro:', error);
                Swal.fire('Erro!', 'Erro ao duplicar formulário', 'error');
            });
        }

        // Função para editar formulário
        function editarFormulario(id) {
            window.location.href = 'cadastrar_formulario.php?edit=' + id;
        }
    </script>
</body>
</html>