<?php
session_start();

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

require_once 'conexao.php';

$respostaId = (int)$_GET['id'];

// Obter o tenant_id do usuário logado
$tenant_id = $_SESSION['tenant_id'] ?? null;

// Buscar o nome da empresa (tenant) no banco de dados
if ($tenant_id) {
    $sql_tenant = "SELECT nome FROM tenants WHERE id = ?";
    $stmt_tenant = $conn->prepare($sql_tenant);
    $stmt_tenant->bind_param("i", $tenant_id);
    $stmt_tenant->execute();
    $result_tenant = $stmt_tenant->get_result();

    if ($result_tenant->num_rows > 0) {
        $tenant = $result_tenant->fetch_assoc();
        $nome_empresa = $tenant['nome'];
    }
    $stmt_tenant->close();
}

// Buscar resposta do formulário do FUNIL
$sqlResposta = "SELECT rf.*, f.nome as formulario_nome, ef.nome as etapa_funil_nome
               FROM respostas_formulario rf
               JOIN formularios f ON rf.formulario_id = f.id
               LEFT JOIN etapas_funis ef ON f.id = ef.questionario_id
               WHERE rf.id = ?";
$stmtResposta = $conn->prepare($sqlResposta);
$stmtResposta->bind_param("i", $respostaId);
$stmtResposta->execute();
$resposta = $stmtResposta->get_result()->fetch_assoc();
$stmtResposta->close();

// Buscar nome do cliente
$nome_cliente = 'Formulário não vinculado a um cliente';
if (isset($resposta['cliente_id']) && !empty($resposta['cliente_id'])) {
    $clienteId = (int)$resposta['cliente_id'];
    $sql_cliente = "SELECT Nome_Cliente FROM clientes WHERE id = ? AND tenant_id = ?";
    $stmt_cliente = $conn->prepare($sql_cliente);
    $stmt_cliente->bind_param("ii", $clienteId, $tenant_id);
    $stmt_cliente->execute();
    $result_cliente = $stmt_cliente->get_result();
    
    if ($result_cliente->num_rows > 0) {
        $cliente = $result_cliente->fetch_assoc();
        $nome_cliente = $cliente['Nome_Cliente'] ?? 'Nome não encontrado';
    }
    $stmt_cliente->close();
}

// Buscar perguntas e respostas - VERSÃO ESPECÍFICA PARA FUNIL
$sqlPerguntas = "
SELECT 
    p.*,
    rp.resposta_texto,
    rp.opcao_id,
    orp.texto as opcao_texto
FROM perguntas p
LEFT JOIN respostas_perguntas rp 
    ON p.id = rp.pergunta_id AND rp.resposta_formulario_id = ?
LEFT JOIN opcoes_resposta orp 
    ON rp.opcao_id = orp.id
WHERE p.formulario_id = ?
AND (
    p.parent_resposta_id IS NULL 
    OR p.parent_resposta_id IN (
        SELECT rp2.opcao_id
        FROM respostas_perguntas rp2
        WHERE rp2.resposta_formulario_id = ?
        AND rp2.pergunta_id = p.parent_pergunta_id
    )
)
ORDER BY p.ordem, p.id";

$stmtPerguntas = $conn->prepare($sqlPerguntas);
$stmtPerguntas->bind_param("iii", $respostaId, $resposta['formulario_id'], $respostaId);
$stmtPerguntas->execute();
$perguntasRaw = $stmtPerguntas->get_result()->fetch_all(MYSQLI_ASSOC);
$stmtPerguntas->close();

// Processar as perguntas e agrupar respostas
$perguntas = [];
foreach ($perguntasRaw as $perguntaRaw) {
    $perguntaId = $perguntaRaw['id'];
    
    // Se é a primeira vez que vemos esta pergunta
    if (!isset($perguntas[$perguntaId])) {
        $perguntas[$perguntaId] = [
            'id' => $perguntaRaw['id'],
            'texto' => $perguntaRaw['texto'],
            'tipo' => $perguntaRaw['tipo'],
            'parent_resposta_id' => $perguntaRaw['parent_resposta_id'],
            'parent_pergunta_id' => $perguntaRaw['parent_pergunta_id'],
            'respostas' => []
        ];
    }
    
    // Adicionar resposta se existir
    if (!empty($perguntaRaw['resposta_texto']) || !empty($perguntaRaw['opcao_id'])) {
        $respostaTexto = '';
        
        if (!empty($perguntaRaw['opcao_texto'])) {
            // Resposta é uma opção selecionada
            $respostaTexto = $perguntaRaw['opcao_texto'];
        } elseif (!empty($perguntaRaw['resposta_texto'])) {
            // Resposta é texto livre
            $respostaTexto = $perguntaRaw['resposta_texto'];
        }
        
        if (!empty($respostaTexto) && !in_array($respostaTexto, $perguntas[$perguntaId]['respostas'])) {
            $perguntas[$perguntaId]['respostas'][] = $respostaTexto;
        }
    }
}

// Converter para array indexado
$perguntas = array_values($perguntas);

// Exibir mensagens apenas em requisições não-AJAX
if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !isset($_POST['ajax'])) {
    if (isset($_SESSION['mensagem'])) {
        echo '<div class="mensagem-flutuante" id="mensagemFlutuante">'
           . htmlspecialchars($_SESSION['mensagem'])
           . '</div>';
        
        unset($_SESSION['mensagem']);
        
        echo '<script>
                setTimeout(function() {
                    const msg = document.getElementById("mensagemFlutuante");
                    if (msg) msg.style.display = "none";
                }, 3000);
              </script>';
    }
}
?>

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>SON - Visualizar Questionário do Funil</title>
    <meta name="csrf-token" content="<?= htmlspecialchars($_SESSION['csrf_token']) ?>">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            window.jsPDF = window.jspdf.jsPDF;
            console.log('jsPDF carregado:', typeof jsPDF !== 'undefined');
        });
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf-autotable/3.5.25/jspdf.plugin.autotable.min.js"></script>
    
    <style>
        /* Mantenha todo o CSS do arquivo original */
        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;
        }
        
        .header-fixed img {
            height: 50px;
            margin-right: 15px;
        }
        
        .header-fixed h2 {
            margin: 0;
            flex-grow: 1;
            text-align: center;
        }
        
        .sidebar {
            position: fixed;
            top: 80px;
            left: 0;
            bottom: 0;
            width: 250px;
            background-color: #2c3e50;
            color: white;
            padding-top: 20px;
            overflow-y: auto;
            z-index: 900;
        }
        
        .sidebar a {
            display: block;
            color: white;
            padding: 15px 20px;
            text-decoration: none;
            transition: background-color 0.3s;
        }
        
        .sidebar a:hover {
            background-color: #34495e;
        }
        
        .sidebar .submenu {
            padding-left: 30px;
            background-color: #34495e;
            display: none;
        }
        
        .sidebar .submenu a {
            padding: 10px 20px;
            font-size: 0.9em;
        }
        
        .sidebar .has-submenu {
            position: relative;
        }
        
        .sidebar .has-submenu::after {
            content: "▶";
            position: absolute;
            right: 20px;
            transition: transform 0.3s;
        }
        
        .sidebar .has-submenu.open::after {
            transform: rotate(90deg);
        }
        
        .content-wrapper {
            margin-left: 250px;
            margin-top: 80px;
            padding: 20px;
        }
        
        .container {
            max-width: 1200px;
            margin: 0 auto;
            background: white;
            padding: 25px;
            border-radius: 8px;
            box-shadow: 0 0 15px rgba(0, 0, 0, 0.05);
        }
        
        h1 {
            color: #2c3e50;
            border-bottom: 2px solid #f1f1f1;
            padding-bottom: 12px;
            margin-bottom: 20px;
            font-size: 1.8rem;
        }
        
        .pergunta {
            margin-bottom: 20px;
            padding: 15px;
            background: #f8f9fa;
            border-radius: 5px;
            border-left: 4px solid #3498db;
        }
        
        .pergunta-condicional {
            margin-left: 30px;
            border-left-color: #6e48aa;
            background: #f0f7ff;
        }
        
        .resposta {
            margin-top: 10px;
            padding: 10px;
            background: #e9f7fe;
            border-radius: 3px;
            border-left: 3px solid #2980b9;
        }
        
        .data-resposta {
            color: #7f8c8d;
            font-size: 0.9em;
            margin-bottom: 20px;
        }
        
        .btn-voltar {
            display: inline-block;
            padding: 10px 15px;
            background-color: #3498db;
            color: white;
            text-decoration: none;
            border-radius: 4px;
            margin-top: 20px;
            transition: background-color 0.3s;
        }
        
        .btn-voltar:hover {
            background-color: #2980b9;
        }
        
        .btn-export {
            display: inline-block;
            padding: 10px 15px;
            background-color: #6c757d;
            color: white;
            text-decoration: none;
            border-radius: 4px;
            margin-top: 20px;
            margin-right: 10px;
            transition: background-color 0.3s;
            cursor: pointer;
            border: none;
            font-size: 14px;
        }
        
        .btn-export:hover {
            background-color: #5a6268;
        }
        
        .btn-export.pdf {
            background-color: #e74c3c;
        }
        
        .btn-export.pdf:hover {
            background-color: #c0392b;
        }
        
        .btn-export.print {
            background-color: #17a2b8;
        }
        
        .btn-export.print:hover {
            background-color: #138496;
        }
        
        .mensagem-flutuante {
            position: fixed;
            top: 90px;
            right: 25px;
            padding: 14px 24px;
            background: #2ecc71;
            color: white;
            border-radius: 4px;
            z-index: 2000;
            box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
            font-weight: 500;
            animation: slideIn 0.3s ease-out;
        }
        
        @keyframes slideIn {
            from {
                transform: translateY(-20px);
                opacity: 0;
            }
            to {
                transform: translateY(0);
                opacity: 1;
            }
        }
        
        .user-info {
            margin-right: 15px;
            font-weight: bold;
            color: #333;
            font-size: 1.1em;
        }
        
        .admin-fixed-btn {
            position: fixed;
            bottom: 20px;
            right: 20px;
            background-color: #3498db;
            color: white;
            width: 50px;
            height: 50px;
            border-radius: 50%;
            display: flex;
            justify-content: center;
            align-items: center;
            cursor: pointer;
            box-shadow: 0 2px 10px rgba(0,0,0,0.2);
            z-index: 1000;
        }
        
        .admin-fixed-btn:hover {
            background-color: #2980b9;
        }
        
        .tooltip {
            position: absolute;
            bottom: -30px;
            right: 0;
            background-color: #333;
            color: white;
            padding: 5px 10px;
            border-radius: 4px;
            font-size: 12px;
            white-space: nowrap;
            opacity: 0;
            transition: opacity 0.3s;
            pointer-events: none;
        }
        
        .admin-fixed-btn:hover .tooltip {
            opacity: 1;
        }
        
        .version-info {
            position: fixed;
            bottom: 10px;
            left: 10px;
            color: #7f8c8d;
            font-size: 0.8em;
        }
        
        @media print {
            .header-fixed, .btn-export, .btn-voltar, .sidebar {
                display: none !important;
            }
            
            .content-wrapper {
                margin-top: 0 !important;
                margin-left: 0 !important;
            }
            
            body {
                background: white !important;
                color: black !important;
            }
            
            .container {
                box-shadow: none !important;
                border: none !important;
                padding: 0 !important;
            }
            
            .pergunta {
                page-break-inside: avoid;
                border-left: none !important;
                padding: 5px !important;
                margin-bottom: 10px !important;
            }
            
            .resposta {
                border-left: none !important;
                padding: 5px !important;
                background: transparent !important;
            }
        }
        
        @media (max-width: 768px) {
            .sidebar {
                width: 100%;
                position: relative;
                top: 0;
            }
            
            .content-wrapper {
                margin-left: 0;
                margin-top: 80px;
            }
            
            .container {
                padding: 18px;
            }
            
            .pergunta {
                padding: 12px;
            }
            
            .resposta {
                padding: 8px;
            }
        }

        .info-etapa-funil {
            background: #e8f5e8;
            border-left: 4px solid #27ae60;
            padding: 15px;
            margin-bottom: 20px;
            border-radius: 5px;
        }
    </style>
</head>
<body>
    <!-- Cabeçalho Fixo -->
    <div class="header-fixed">
        <img src="tvitec.png" alt="Logo TVITEC" style="height:40px; margin-right: 15px;">

        <div style="flex-grow: 1; display: flex; align-items: center; justify-content: center; gap: 12px;">
            <h2 style="margin: 0;">Sistema de Organização de Negócios</h2>
        </div>

        <div class="user-info" style="display:flex; align-items:center; gap:10px;">
            <?php if (!empty($_SESSION['foto_perfil'])): ?>
                <img src="<?php echo htmlspecialchars($_SESSION['foto_perfil']); ?>" class="user-photo" alt="Foto do usuário" style="width:40px; height:40px; border-radius:50%;">
            <?php else: ?>
                <div class="user-initial" style="width:40px; height:40px; border-radius:50%; background:#ccc; display:flex; align-items:center; justify-content:center; font-weight:bold; font-size:1.2em;">
                    <?php echo strtoupper(substr($_SESSION['nome_usuario'] ?? 'U', 0, 1)); ?>
                </div>
            <?php endif; ?>
            <div style="text-align:left;">
                <div style="font-weight: bold; color: #333; font-size: 1.1em;">
                    <?php echo htmlspecialchars($_SESSION['nome_usuario'] ?? 'Usuário'); ?>
                </div>
                <div style="font-size: 0.9em; color: #555;">
                    <?php echo htmlspecialchars($_SESSION['email_usuario'] ?? ''); ?>
                </div>
            </div>
        </div>
    </div>

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

    <!-- Conteúdo Principal -->
    <div class="content-wrapper">
        <div class="container">
            <!-- Cabeçalho do documento com destaque para a empresa -->
            <div class="document-header" style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; padding: 20px; background: #f8f9fa; border-radius: 8px; border-left: 5px solid #6e48aa; box-shadow: 0 2px 10px rgba(0,0,0,0.08);">
                <div>
                    <div style="display: flex; align-items: center; margin-bottom: 5px;">
                        <i class="fas fa-building" style="font-size: 1.5em; color: #6e48aa; margin-right: 10px;"></i>
                        <h1 style="margin: 0; color: #6e48aa; font-size: 1.8em; font-weight: 600;">
                            <?= htmlspecialchars($nome_empresa) ?>
                        </h1>
                    </div>
                    
                    <p style="margin: 0; color: #2c3e50; font-size: 1.1em;">
                        <?= htmlspecialchars($nome_cliente) ?>
                    </p>
                </div>
            </div>

            <!-- Informação da etapa do funil -->
            <?php if (!empty($resposta['etapa_funil_nome'])): ?>
                <div class="info-etapa-funil">
                    <i class="fas fa-funnel-dollar" style="color: #27ae60; margin-right: 10px;"></i>
                    <strong>Etapa do Funil:</strong> <?= htmlspecialchars($resposta['etapa_funil_nome']) ?>
                </div>
            <?php endif; ?>
           
            <h1><?= htmlspecialchars($resposta['formulario_nome']) ?></h1>
            <p class="data-resposta">Respondido em: <?= date('d/m/Y H:i', strtotime($resposta['data_resposta'])) ?></p>
            
            <?php foreach ($perguntas as $pergunta): ?>
                <div class="pergunta <?= $pergunta['parent_resposta_id'] ? 'pergunta-condicional' : '' ?>">
                    <strong><?= htmlspecialchars($pergunta['texto']) ?></strong>
                    <?php if ($pergunta['parent_resposta_id']): ?>
                        <small style="color: #6e48aa;">(Pergunta condicional)</small>
                    <?php endif; ?>
                    <div class="resposta">
                        <?php 
                        if (!empty($pergunta['respostas'])) {
                            foreach ($pergunta['respostas'] as $respostaTexto) {
                                echo "<p>" . htmlspecialchars($respostaTexto) . "</p>";
                            }
                        } else {
                            echo '(Sem resposta)';
                        }
                        ?>
                    </div>
                </div>
            <?php endforeach; ?>
            
            <div class="export-buttons">
                <button onclick="gerarPDF()" class="btn-export pdf">
                    <i class="fas fa-file-pdf"></i> Gerar PDF
                </button>
                <button onclick="imprimirFormulario()" class="btn-export print">
                    <i class="fas fa-print"></i> Imprimir
                </button>
                <?php if (isset($resposta['cliente_id']) && !empty($resposta['cliente_id'])): ?>
                    <a href="editar_cliente.php?id=<?= $resposta['cliente_id'] ?>#formularios" class="btn-voltar">
                        <i class="fas fa-arrow-left"></i> Voltar para o Cliente
                    </a>
                <?php else: ?>
                    <a href="javascript:history.back()" class="btn-voltar">
                        <i class="fas fa-arrow-left"></i> Voltar
                    </a>
                <?php endif; ?>
            </div>
        </div>
    </div>

    <script>
        document.addEventListener('DOMContentLoaded', function() {
            console.log('DOM completamente carregado');
            
            if (typeof window.jspdf !== 'undefined') {
                window.jsPDF = window.jspdf.jsPDF;
                console.log('jsPDF carregado com sucesso');
            } else {
                console.error('jsPDF não foi carregado corretamente');
            }
        });

        // Função para alternar submenus
        function toggleSubmenu(id) {
            const submenu = document.getElementById(id);
            const menuItem = submenu.previousElementSibling;
            
            if (submenu.style.display === 'block') {
                submenu.style.display = 'none';
                menuItem.classList.remove('open');
            } else {
                submenu.style.display = 'block';
                menuItem.classList.add('open');
            }
        }
        
        function gerarPDF() {
            try {
                if (typeof jsPDF === 'undefined') {
                    throw new Error('A biblioteca jsPDF não foi carregada corretamente. Por favor, recarregue a página.');
                }

                const doc = new jsPDF();
                
                doc.setFont('helvetica');
                
                doc.setFontSize(16);
                doc.setFont('helvetica', 'bold');
                doc.setTextColor(110, 72, 170);
                doc.text('<?= htmlspecialchars(addslashes($nome_empresa)) ?>', 14, 20);
                
                doc.setFontSize(12);
                doc.setFont('helvetica', 'normal');
                doc.setTextColor(44, 62, 80);
                doc.text('Cliente: <?= htmlspecialchars(addslashes($nome_cliente)) ?>', 14, 30);
                
                <?php if (!empty($resposta['etapa_funil_nome'])): ?>
                doc.text('Etapa do Funil: <?= htmlspecialchars(addslashes($resposta['etapa_funil_nome'])) ?>', 14, 40);
                <?php endif; ?>
                
                doc.setDrawColor(110, 72, 170);
                doc.setLineWidth(0.5);
                doc.line(14, 50, 196, 50);
                
                doc.setFontSize(18);
                doc.setFont('helvetica', 'bold');
                doc.setTextColor(0, 0, 0);
                doc.text('Questionário: <?= htmlspecialchars(addslashes($resposta['formulario_nome'])) ?>', 14, 65);
                
                doc.setFontSize(12);
                doc.setFont('helvetica', 'normal');
                doc.text('Respondido em: <?= date('d/m/Y H:i', strtotime($resposta['data_resposta'])) ?>', 14, 75);
                
                let y = 85;
                
                <?php foreach ($perguntas as $pergunta): ?>
                    doc.setFontSize(14);
                    doc.setFont('helvetica', 'bold');
                    doc.text('<?= htmlspecialchars(addslashes($pergunta['texto'])) ?>', 14, y);
                    y += 8;
                    
                    <?php if ($pergunta['parent_resposta_id']): ?>
                        doc.setFontSize(10);
                        doc.setTextColor(110, 72, 170);
                        doc.text('(Pergunta condicional)', 20, y);
                        y += 5;
                    <?php endif; ?>
                    
                    doc.setFont('helvetica', 'normal');
                    doc.setFontSize(12);
                    doc.setTextColor(0, 0, 0);
                    <?php if (!empty($pergunta['respostas'])): ?>
                        <?php foreach ($pergunta['respostas'] as $r): ?>
                            try {
                                doc.text('• ' + '<?= htmlspecialchars(addslashes($r)) ?>', 20, y);
                                y += 7;
                            } catch (e) {
                                console.error('Erro ao adicionar resposta:', e);
                                y += 7;
                            }
                        <?php endforeach; ?>
                    <?php else: ?>
                        doc.text('(Sem resposta)', 20, y);
                        y += 7;
                    <?php endif; ?>
                    
                    y += 10;
                    
                    if (y > 270) {
                        doc.addPage();
                        y = 20;
                    }
                <?php endforeach; ?>
                
                doc.save('questionario_funil_<?= htmlspecialchars(addslashes($resposta['formulario_nome'])) ?>_<?= date('Y-m-d') ?>.pdf');
                
            } catch (error) {
                console.error('Erro ao gerar PDF:', error);
                Swal.fire({
                    icon: 'error',
                    title: 'Erro ao gerar PDF',
                    text: error.message || 'Ocorreu um erro ao tentar gerar o PDF. Por favor, tente novamente.',
                });
            }
        }
        
        function imprimirFormulario() {
            try {
                if (typeof window.print === 'function') {
                    window.print();
                } else {
                    throw new Error('Função de impressão não disponível');
                }
            } catch (error) {
                console.error('Erro ao imprimir:', error);
                Swal.fire({
                    icon: 'error',
                    title: 'Erro ao imprimir',
                    text: 'Não foi possível iniciar a impressão. Por favor, use o atalho Ctrl+P (Windows) ou Cmd+P (Mac).',
                });
            }
        }
    </script>
</body>
</html>