<?php
require_once 'conexao.php';

$cliente_id = isset($_GET['cliente_id']) ? (int)$_GET['cliente_id'] : 0;
$formulario_id = isset($_GET['formulario_id']) ? (int)$_GET['formulario_id'] : 0;
$token = isset($_GET['token']) ? $_GET['token'] : '';

// Verificar se o token é válido
$stmt = $conn->prepare("SELECT * FROM envios_formulario 
                       WHERE cliente_id = ? AND formulario_id = ? AND token = ? 
                       AND utilizado = 0 AND data_envio > DATE_SUB(NOW(), INTERVAL 7 DAY)");
$stmt->bind_param("iis", $cliente_id, $formulario_id, $token);
$stmt->execute();
$envio = $stmt->get_result()->fetch_assoc();

if (!$envio) {
    die("Link inválido ou expirado. Por favor, solicite um novo link.");
}

// Buscar informações do cliente
$stmt = $conn->prepare("SELECT Nome_Cliente FROM clientes WHERE id = ?");
$stmt->bind_param("i", $cliente_id);
$stmt->execute();
$cliente = $stmt->get_result()->fetch_assoc();

// Buscar informações do formulário
$stmt = $conn->prepare("SELECT nome FROM formularios WHERE id = ?");
$stmt->bind_param("i", $formulario_id);
$stmt->execute();
$formulario = $stmt->get_result()->fetch_assoc();

// Processar envio das respostas
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Marcar o token como utilizado
    $stmt = $conn->prepare("UPDATE envios_formulario SET utilizado = 1, data_resposta = NOW() 
                           WHERE cliente_id = ? AND formulario_id = ? AND token = ?");
    $stmt->bind_param("iis", $cliente_id, $formulario_id, $token);
    $stmt->execute();
    
    // Inserir resposta do formulário
    $sqlInsert = "INSERT INTO respostas_formulario (formulario_id, cliente_id, data_resposta, origem) 
                 VALUES (?, ?, NOW(), 'publico')";
    $stmtInsert = $conn->prepare($sqlInsert);
    $stmtInsert->bind_param("ii", $formulario_id, $cliente_id);
    $stmtInsert->execute();
    $respostaId = $stmtInsert->insert_id;
    
    // Inserir respostas das perguntas
    foreach ($_POST['respostas'] as $perguntaId => $resposta) {
        if (is_array($resposta)) {
            // Para perguntas de múltipla escolha
            foreach ($resposta as $opcao) {
                $sqlInsertResposta = "INSERT INTO respostas_perguntas 
                                     (resposta_formulario_id, pergunta_id, resposta_texto) 
                                     VALUES (?, ?, ?)";
                $stmtResposta = $conn->prepare($sqlInsertResposta);
                $stmtResposta->bind_param("iis", $respostaId, $perguntaId, $opcao);
                $stmtResposta->execute();
            }
        } else {
            // Para perguntas abertas ou de única escolha
            $sqlInsertResposta = "INSERT INTO respostas_perguntas 
                                 (resposta_formulario_id, pergunta_id, resposta_texto) 
                                 VALUES (?, ?, ?)";
            $stmtResposta = $conn->prepare($sqlInsertResposta);
            $stmtResposta->bind_param("iis", $respostaId, $perguntaId, $resposta);
            $stmtResposta->execute();
        }
    }
    
    echo "<div style='text-align: center; padding: 20px;'>
            <h2>Obrigado!</h2>
            <p>Seu formulário foi enviado com sucesso.</p>
          </div>";
    exit;
}

// Carregar perguntas do formulário
$perguntas = [];
$stmt = $conn->prepare("SELECT id, texto, tipo FROM perguntas_formulario 
                       WHERE formulario_id = ? ORDER BY ordem");
$stmt->bind_param("i", $formulario_id);
$stmt->execute();
$result = $stmt->get_result();
$perguntas = $result->fetch_all(MYSQLI_ASSOC);

// Para cada pergunta, carregar opções se for do tipo seleção
foreach ($perguntas as &$pergunta) {
    if (in_array($pergunta['tipo'], ['unica', 'multipla'])) {
        $stmt = $conn->prepare("SELECT id, texto FROM opcoes_pergunta 
                               WHERE pergunta_id = ? ORDER BY ordem");
        $stmt->bind_param("i", $pergunta['id']);
        $stmt->execute();
        $result = $stmt->get_result();
        $pergunta['opcoes'] = $result->fetch_all(MYSQLI_ASSOC);
    }
}
unset($pergunta); // Quebrar a referência
?>

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Formulário: <?= htmlspecialchars($formulario['nome']) ?></title>
    <style>
        body {
            font-family: Arial, sans-serif;
            line-height: 1.6;
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
        }
        h1 {
            color: #333;
            text-align: center;
        }
        .form-container {
            background-color: #f9f9f9;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 0 10px rgba(0,0,0,0.1);
        }
        .pergunta {
            margin-bottom: 20px;
            padding: 15px;
            background-color: white;
            border-radius: 5px;
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
        }
        .opcoes {
            margin-top: 10px;
        }
        .opcao {
            margin-bottom: 8px;
        }
        button {
            background-color: #4CAF50;
            color: white;
            padding: 10px 15px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            font-size: 16px;
        }
        button:hover {
            background-color: #45a049;
        }
    </style>
</head>
<body>
    <h1><?= htmlspecialchars($formulario['nome']) ?></h1>
    <p style="text-align: center;">Cliente: <?= htmlspecialchars($cliente['Nome_Cliente']) ?></p>
    
    <div class="form-container">
        <form method="POST">
            <?php foreach ($perguntas as $pergunta): ?>
                <div class="pergunta">
                    <label><strong><?= htmlspecialchars($pergunta['texto']) ?></strong></label>
                    
                    <?php if ($pergunta['tipo'] === 'aberta'): ?>
                        <input type="text" name="respostas[<?= $pergunta['id'] ?>]" required 
                               style="width: 100%; padding: 8px; margin-top: 5px;">
                    
                    <?php elseif ($pergunta['tipo'] === 'unica'): ?>
                        <div class="opcoes">
                            <?php foreach ($pergunta['opcoes'] as $opcao): ?>
                                <div class="opcao">
                                    <input type="radio" name="respostas[<?= $pergunta['id'] ?>]" 
                                           id="opcao_<?= $opcao['id'] ?>" value="<?= htmlspecialchars($opcao['texto']) ?>" required>
                                    <label for="opcao_<?= $opcao['id'] ?>"><?= htmlspecialchars($opcao['texto']) ?></label>
                                </div>
                            <?php endforeach; ?>
                        </div>
                    
                    <?php elseif ($pergunta['tipo'] === 'multipla'): ?>
                        <div class="opcoes">
                            <?php foreach ($pergunta['opcoes'] as $opcao): ?>
                                <div class="opcao">
                                    <input type="checkbox" name="respostas[<?= $pergunta['id'] ?>][]" 
                                           id="opcao_<?= $opcao['id'] ?>" value="<?= htmlspecialchars($opcao['texto']) ?>">
                                    <label for="opcao_<?= $opcao['id'] ?>"><?= htmlspecialchars($opcao['texto']) ?></label>
                                </div>
                            <?php endforeach; ?>
                        </div>
                    <?php endif; ?>
                </div>
            <?php endforeach; ?>
            
            <div style="text-align: center; margin-top: 30px;">
                <button type="submit">Enviar Formulário</button>
            </div>
        </form>
    </div>
</body>
</html>