<?php
session_start();
require_once 'conexao.php';

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

// Buscar formulário
$sqlFormulario = "SELECT * FROM formularios WHERE id = ?";
$stmtFormulario = $conn->prepare($sqlFormulario);
$stmtFormulario->bind_param("i", $formularioId);
$stmtFormulario->execute();
$formulario = $stmtFormulario->get_result()->fetch_assoc();
$stmtFormulario->close();

// Buscar perguntas do formulário (apenas perguntas raiz)
$sqlPerguntas = "SELECT * FROM perguntas WHERE formulario_id = ? AND parent_resposta_id IS NULL";
$stmtPerguntas = $conn->prepare($sqlPerguntas);
$stmtPerguntas->bind_param("i", $formularioId);
$stmtPerguntas->execute();
$perguntas = $stmtPerguntas->get_result()->fetch_all(MYSQLI_ASSOC);
$stmtPerguntas->close();

// Para cada pergunta, buscar opções de resposta
foreach ($perguntas as &$pergunta) {
    $sqlOpcoes = "SELECT * FROM opcoes_resposta WHERE pergunta_id = ?";
    $stmtOpcoes = $conn->prepare($sqlOpcoes);
    $stmtOpcoes->bind_param("i", $pergunta['id']);
    $stmtOpcoes->execute();
    $pergunta['respostas'] = $stmtOpcoes->get_result()->fetch_all(MYSQLI_ASSOC);
    $stmtOpcoes->close();
    
    // Para cada resposta, buscar perguntas condicionais
    foreach ($pergunta['respostas'] as &$resposta) {
        $sqlCondicionais = "SELECT p.* FROM perguntas p WHERE p.parent_resposta_id = ?";
        $stmtCondicionais = $conn->prepare($sqlCondicionais);
        $stmtCondicionais->bind_param("i", $resposta['id']);
        $stmtCondicionais->execute();
        $condicionais = $stmtCondicionais->get_result()->fetch_all(MYSQLI_ASSOC);
        $stmtCondicionais->close();
        
        // Para cada pergunta condicional, buscar suas respostas
        foreach ($condicionais as &$condicional) {
            $sqlOpcoesCond = "SELECT * FROM opcoes_resposta WHERE pergunta_id = ?";
            $stmtOpcoesCond = $conn->prepare($sqlOpcoesCond);
            $stmtOpcoesCond->bind_param("i", $condicional['id']);
            $stmtOpcoesCond->execute();
            $condicional['respostas'] = $stmtOpcoesCond->get_result()->fetch_all(MYSQLI_ASSOC);
            $stmtOpcoesCond->close();
            
            // Recursivamente buscar condicionais das condicionais
            foreach ($condicional['respostas'] as &$respostaCond) {
                $sqlCondicionais2 = "SELECT p.* FROM perguntas p WHERE p.parent_resposta_id = ?";
                $stmtCondicionais2 = $conn->prepare($sqlCondicionais2);
                $stmtCondicionais2->bind_param("i", $respostaCond['id']);
                $stmtCondicionais2->execute();
                $condicionais2 = $stmtCondicionais2->get_result()->fetch_all(MYSQLI_ASSOC);
                $stmtCondicionais2->close();
                
                // Buscar respostas das condicionais de segundo nível
                foreach ($condicionais2 as &$condicional2) {
                    $sqlOpcoesCond2 = "SELECT * FROM opcoes_resposta WHERE pergunta_id = ?";
                    $stmtOpcoesCond2 = $conn->prepare($sqlOpcoesCond2);
                    $stmtOpcoesCond2->bind_param("i", $condicional2['id']);
                    $stmtOpcoesCond2->execute();
                    $condicional2['respostas'] = $stmtOpcoesCond2->get_result()->fetch_all(MYSQLI_ASSOC);
                    $stmtOpcoesCond2->close();
                }
                
                $respostaCond['condicionais'] = $condicionais2;
            }
        }
        
        $resposta['condicionais'] = $condicionais;
    }
}

header('Content-Type: application/json');
echo json_encode([
    'id' => $formulario['id'],
    'nome' => $formulario['nome'],
    'perguntas' => $perguntas
]);
?>