<?php
include "header.php";
include "db.php";

// Pegar ID do formulário do GET ou POST
$formulario_id = (int) ($_GET['id'] ?? $_POST['formulario_id'] ?? 0);
if (!$formulario_id) die("Formulário não encontrado!");

// Buscar formulário
$stmt = $pdo->prepare("SELECT * FROM formularios WHERE id = :id");
$stmt->execute(['id' => $formulario_id]);
$formulario = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$formulario) die("Formulário não existe.");

// Inicializar variáveis para manter valores no formulário
$novo_label = $_POST['label'] ?? '';
$novo_tipo = $_POST['tipo'] ?? '';
$novo_opcoes = $_POST['opcoes'] ?? '';

// ==============================
// ATUALIZAR NOME DO FORMULÁRIO
// ==============================
if (isset($_POST['atualizar_formulario'])) {
    $nome = $_POST['nome'] ?? '';
    if ($nome) {
        $stmt = $pdo->prepare("UPDATE formularios SET nome = :nome WHERE id = :id");
        $stmt->execute(['nome' => $nome, 'id' => $formulario_id]);
        header("Location: formularios.php?r=1");
        exit;
    }
}

// ==============================
// ADICIONAR NOVO CAMPO
// ==============================
if (isset($_POST['adicionar'])) {
    $label = trim($_POST['label']);
    $tipo = $_POST['tipo'];
    $opcoes = !empty($_POST['opcoes']) ? $_POST['opcoes'] : null;

    if ($label && $tipo) {
        $stmt = $pdo->prepare("INSERT INTO formulario_campos (formulario_id, label, tipo, opcoes) 
                               VALUES (:fid, :label, :tipo, :opcoes)");
        $stmt->execute([
            'fid' => $formulario_id,
            'label' => $label,
            'tipo' => $tipo,
            'opcoes' => $opcoes
        ]);
    }

    // Redireciona para formularios.php e força reload
    header("Location: formularios.php?r=1");
    exit;
}

// ==============================
// ATUALIZAR CAMPOS EXISTENTES
// ==============================
if (isset($_POST['atualizar_campos'])) {
    foreach ($_POST['campo'] as $id => $data) {
        $stmt = $pdo->prepare("UPDATE formulario_campos SET label = :label, tipo = :tipo, opcoes = :opcoes WHERE id = :id");
        $stmt->execute([
            'label' => $data['label'],
            'tipo' => $data['tipo'],
            'opcoes' => $data['opcoes'] ?? null,
            'id' => $id
        ]);
    }

    // Redireciona para formularios.php e força reload
    header("Location: formularios.php?r=1");
    exit;
}

// Buscar campos existentes
$stmt = $pdo->prepare("SELECT * FROM formulario_campos WHERE formulario_id = :id ORDER BY id ASC");
$stmt->execute(['id' => $formulario_id]);
$campos = $stmt->fetchAll(PDO::FETCH_ASSOC);

// Tipos de campo
$tipos = [
    'text'=>'Texto', 'textarea'=>'Área de Texto', 'number'=>'Número', 'email'=>'E-mail',
    'select'=>'Select', 'checkbox'=>'Checkbox', 'radio'=>'Radio', 'file'=>'Arquivo',
    'image'=>'Imagem', 'warning'=>'Aviso', 'cpf'=>'CPF', 'telefone'=>'Telefone',
    'cep'=>'CEP', 'date'=>'Data', 'rg'=>'RG', 'cnpj'=>'CNPJ',
    'porcentagem'=>'Porcentagem'
];
?>

<div class="max-w-4xl mx-auto py-6">

<h2 class="text-2xl font-bold mb-4">Editar Formulário: <?= htmlspecialchars($formulario['nome']) ?></h2>

<!-- Formulário para editar nome -->
<form method="post" class="bg-white p-4 rounded shadow mb-6 flex gap-2">
    <input type="text" name="nome" value="<?= htmlspecialchars($formulario['nome']) ?>" required
        class="flex-1 p-2 border rounded">
    <button type="submit" name="atualizar_formulario"
        class="bg-blue-600 text-white px-4 py-2 rounded hover:bg-blue-700">Atualizar Nome</button>
</form>

<!-- Formulário para atualizar campos existentes -->
<form method="post" class="bg-white p-4 rounded shadow mb-6 space-y-4">
<h3 class="text-xl font-semibold mb-2">Campos existentes</h3>
<?php foreach ($campos as $c): ?>
<div class="flex gap-2 items-center border p-3 rounded">
    <input type="text" name="campo[<?= $c['id'] ?>][label]" value="<?= htmlspecialchars($c['label']) ?>" required
        class="flex-1 p-2 border rounded">
    <select name="campo[<?= $c['id'] ?>][tipo]" required class="p-2 border rounded">
        <?php foreach($tipos as $k => $v): ?>
        <option value="<?= $k ?>" <?= $k==$c['tipo']?'selected':'' ?>><?= $v ?></option>
        <?php endforeach; ?>
    </select>
    <input type="text" name="campo[<?= $c['id'] ?>][opcoes]" value="<?= htmlspecialchars($c['opcoes']) ?>"
        placeholder="Opções separadas por vírgula" class="p-2 border rounded flex-1">
    <a href="campo_delete.php?id=<?= $c['id'] ?>&fid=<?= $formulario_id ?>" 
       class="text-red-500 hover:underline">Excluir</a>
</div>
<?php endforeach; ?>
<button type="submit" name="atualizar_campos" class="bg-green-600 text-white px-4 py-2 rounded hover:bg-green-700">
    Salvar Alterações
</button>
</form>

<!-- Formulário para adicionar novo campo -->
<form method="post" class="bg-white p-4 rounded shadow mb-6 space-y-4">
<h3 class="text-xl font-semibold mb-2">Adicionar novo campo</h3>
<input type="hidden" name="formulario_id" value="<?= $formulario_id ?>">
<input type="text" name="label" placeholder="Nome do campo" value="<?= htmlspecialchars($novo_label) ?>" required class="w-full p-2 border rounded">
<select name="tipo" required class="w-full p-2 border rounded">
    <?php foreach($tipos as $k => $v): ?>
    <option value="<?= $k ?>" <?= $k == $novo_tipo ? 'selected' : '' ?>><?= $v ?></option>
    <?php endforeach; ?>
</select>
<textarea name="opcoes" placeholder="Opções separadas por vírgula se aplicável" class="w-full p-2 border rounded"><?= htmlspecialchars($novo_opcoes) ?></textarea>
<button type="submit" name="adicionar" class="bg-blue-600 text-white px-4 py-2 rounded hover:bg-blue-700">Adicionar Campo</button>
</form>

<!-- Botão de excluir formulário com modal -->
<div class="mt-6">
    <button id="deleteBtn" class="bg-red-600 text-white px-4 py-2 rounded hover:bg-red-700">Excluir Formulário</button>
</div>

<!-- Modal de confirmação -->
<div id="deleteModal" class="fixed inset-0 bg-black bg-opacity-50 hidden items-center justify-center z-50">
    <div class="bg-white rounded-2xl p-6 w-96 text-center shadow-2xl">
        <h3 class="text-xl font-bold mb-4">Confirmar exclusão</h3>
        <p class="mb-6 text-gray-700">Tem certeza que deseja excluir este formulário? Todos os campos, respostas e arquivos serão apagados.</p>
        <div class="flex justify-around">
            <button id="cancelDelete" class="px-4 py-2 rounded bg-gray-300 hover:bg-gray-400">Cancelar</button>
            <a href="formulario_delete.php?id=<?= $formulario_id ?>" class="px-4 py-2 rounded bg-red-600 text-white hover:bg-red-700">Excluir</a>
        </div>
    </div>
</div>

<script>
// Abrir modal
document.getElementById('deleteBtn').addEventListener('click', () => {
    document.getElementById('deleteModal').classList.remove('hidden');
    document.getElementById('deleteModal').classList.add('flex');
});

// Fechar modal
document.getElementById('cancelDelete').addEventListener('click', () => {
    document.getElementById('deleteModal').classList.add('hidden');
    document.getElementById('deleteModal').classList.remove('flex');
});

// Forçar reload ao voltar para formularios.php se parâmetro r=1
if (window.location.search.includes('r=1')) {
    window.location.href = 'formularios.php';
}
</script>

<?php include "footer.php"; ?>
