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

if (!isset($_SESSION['usuario_id'])) {
    header('Location: login.php');
    exit;
}

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    header('Location: index.php');
    exit;
}

$formulario_id = $_POST['formulario_id'] ?? null;
if (!$formulario_id) {
    die("Formulário não especificado.");
}

$conn->begin_transaction();

try {
    // 1. Criar registro principal da resposta
    $stmt = $conn->prepare("INSERT INTO respostas_usuario 
                          (formulario_id, usuario_id, data_resposta) 
                          VALUES (?, ?, NOW())");
    $stmt->bind_param("ii", $formulario_id, $_SESSION['usuario_id']);
    $stmt->execute();
    $resposta_id = $stmt->insert_id;
    $stmt->close();

    // 2. Processar cada pergunta
    foreach ($_POST as $key => $value) {
        if (strpos($key, 'resposta_') === 0) {
            $pergunta_id = str_replace('resposta_', '', $key);
            
            // Verificar se é array (múltipla escolha) ou string (única escolha/aberta)
            if (is_array($value)) {
                // Múltipla escolha
                foreach ($value as $opcao_id) {
                    // Registrar a opção selecionada
                    $stmt = $conn->prepare("INSERT INTO respostas_usuario_opcoes
                                          (resposta_usuario_id, opcao_id)
                                          VALUES (?, ?)");
                    $stmt->bind_param("ii", $resposta_id, $opcao_id);
                    $stmt->execute();
                    $stmt->close();
                    
                    // Registrar também na tabela de respostas
                    $stmt = $conn->prepare("INSERT INTO respostas_perguntas
                                          (resposta_formulario_id, pergunta_id, opcao_id)
                                          VALUES (?, ?, ?)");
                    $stmt->bind_param("iii", $resposta_id, $pergunta_id, $opcao_id);
                    $stmt->execute();
                    $stmt->close();
                }
            } else {
                // Resposta aberta ou única escolha
                if (is_numeric($value)) {
                    // Única escolha
                    $stmt = $conn->prepare("INSERT INTO respostas_perguntas
                                          (resposta_formulario_id, pergunta_id, opcao_id)
                                          VALUES (?, ?, ?)");
                    $stmt->bind_param("iii", $resposta_id, $pergunta_id, $value);
                    $stmt->execute();
                    $stmt->close();
                } else {
                    // Resposta aberta
                    $stmt = $conn->prepare("INSERT INTO respostas_perguntas
                                          (resposta_formulario_id, pergunta_id, resposta_texto)
                                          VALUES (?, ?, ?)");
                    $stmt->bind_param("iis", $resposta_id, $pergunta_id, $value);
                    $stmt->execute();
                    $stmt->close();
                }
            }
        }
        
        // Processar condicionais
        if (strpos($key, 'condicional_') === 0) {
            $pergunta_id = str_replace('condicional_', '', $key);
            
            if (is_array($value)) {
                // Múltipla escolha condicional
                foreach ($value as $opcao_id) {
                    $stmt = $conn->prepare("INSERT INTO respostas_perguntas
                                          (resposta_formulario_id, pergunta_id, opcao_id)
                                          VALUES (?, ?, ?)");
                    $stmt->bind_param("iii", $resposta_id, $pergunta_id, $opcao_id);
                    $stmt->execute();
                    $stmt->close();
                }
            } else {
                // Resposta aberta condicional
                $stmt = $conn->prepare("INSERT INTO respostas_perguntas
                                      (resposta_formulario_id, pergunta_id, resposta_texto)
                                      VALUES (?, ?, ?)");
                $stmt->bind_param("iis", $resposta_id, $pergunta_id, $value);
                $stmt->execute();
                $stmt->close();
            }
        }
    }

    $conn->commit();
    header('Location: formulario.php?sucesso=1');
    exit;

} catch (Exception $e) {
    $conn->rollback();
    die("Erro ao salvar respostas: " . $e->getMessage());
}
?>