# Sistema de Montagem de Questionário

## 📋 Descrição

Nova funcionalidade que permite aos usuários criar e personalizar seus próprios questionários de forma dinâmica, incluindo perguntas e definindo notas para cada item.

## 🚀 Arquivos Criados

1. **criar_tabelas_questionario_template.sql** - Script SQL para criar as tabelas necessárias
2. **montagem_questionario.php** - Página principal para listar e gerenciar questionários
3. **editar_questionario_template.php** - Página para editar questionário e gerenciar perguntas
4. **processar_questionario_template.php** - Backend para processar todas as operações

## 📦 Instalação

### Passo 1: Criar as Tabelas no Banco de Dados

Execute o script SQL no seu banco de dados MySQL:

```bash
mysql -u seu_usuario -p seu_banco < criar_tabelas_questionario_template.sql
```

Ou execute manualmente via phpMyAdmin ou outro cliente MySQL o conteúdo do arquivo `criar_tabelas_questionario_template.sql`.

### Passo 2: Verificar as Tabelas

As seguintes tabelas serão criadas:

- **questionario_template**: Armazena os questionários criados
  - id (PK)
  - nome
  - descricao
  - ativo (S/N)
  - data_criacao
  - data_atualizacao

- **questionario_template_perguntas**: Armazena as perguntas de cada questionário
  - id (PK)
  - id_questionario_template_fk (FK)
  - pergunta
  - tipo_resposta (radio, checkbox, select, text, textarea, number)
  - opcoes (JSON com texto e nota de cada opção)
  - nota_maxima
  - ordem
  - obrigatorio (S/N)
  - data_criacao

## 💡 Como Usar

### 1. Acessar a Montagem de Questionário

- No menu principal da aplicação, clique em **"📋 Montagem de Questionário"**

### 2. Criar um Novo Questionário

1. Clique no botão **"➕ Novo Questionário"**
2. Preencha:
   - **Nome**: Nome descritivo do questionário (obrigatório)
   - **Descrição**: Descrição opcional do objetivo do questionário
3. Clique em **"Criar Questionário"**

### 3. Adicionar Perguntas ao Questionário

1. Clique em **"✏️ Editar"** no questionário desejado
2. Na seção de perguntas, clique em **"➕ Nova Pergunta"**
3. Preencha os dados da pergunta:
   - **Pergunta**: Texto da pergunta (obrigatório)
   - **Tipo de Resposta**: Selecione o tipo
     - **Múltipla Escolha (Radio)**: Uma opção entre várias
     - **Múltipla Seleção (Checkbox)**: Várias opções podem ser marcadas
     - **Lista Suspensa (Select)**: Dropdown com opções
     - **Texto Curto**: Campo de texto simples
     - **Texto Longo**: Área de texto (textarea)
     - **Número**: Campo numérico
   - **Opções de Resposta**: (apenas para radio, checkbox e select)
     - Clique em **"➕ Adicionar Opção"** para cada opção
     - Defina o texto da opção e a nota correspondente
   - **Nota Máxima**: Pontuação máxima desta pergunta
   - **Pergunta obrigatória**: Marque se a pergunta for obrigatória
4. Clique em **"💾 Salvar Pergunta"**

### 4. Gerenciar Perguntas

- **Reordenar**: Use os botões ⬆️ e ⬇️ para mudar a ordem das perguntas
- **Editar**: Clique em **"✏️ Editar"** para modificar uma pergunta
- **Excluir**: Clique em **"🗑️"** para remover uma pergunta

### 5. Ativar/Desativar Questionário

- Na lista de questionários, use o botão **"🔒 Desativar"** ou **"✅ Ativar"**
- Questionários inativos não aparecem em produção (funcionalidade futura)

### 6. Excluir Questionário

- Clique em **"🗑️ Excluir"** na lista de questionários
- ⚠️ **ATENÇÃO**: Isso remove o questionário e todas as suas perguntas permanentemente

## 🎨 Funcionalidades

### ✅ Implementadas

- ✅ Criar, editar e excluir questionários
- ✅ Adicionar, editar e excluir perguntas
- ✅ Diferentes tipos de perguntas (radio, checkbox, select, text, textarea, number)
- ✅ Definir notas para cada opção de resposta
- ✅ Reordenar perguntas (mover para cima/baixo)
- ✅ Marcar perguntas como obrigatórias
- ✅ Ativar/desativar questionários
- ✅ Interface responsiva e intuitiva
- ✅ Validações de formulário

### 🔮 Próximas Implementações Sugeridas

- Duplicar questionários existentes
- Visualização prévia do questionário
- Exportar/importar questionários
- Histórico de alterações
- Aplicar o questionário personalizado no fluxo principal
- Relatórios por questionário personalizado

## 🔧 Estrutura Técnica

### Tecnologias Utilizadas

- **Backend**: PHP 7.4+
- **Banco de Dados**: MySQL 5.7+
- **Frontend**: HTML5, CSS3, JavaScript (Vanilla)
- **Formato de Dados**: JSON para armazenar opções

### Segurança

- ✅ Verificação de login em todas as páginas
- ✅ Prepared statements para prevenir SQL Injection
- ✅ Validação de dados no backend
- ✅ Escape de HTML para prevenir XSS
- ✅ Foreign keys com CASCADE para integridade referencial

## 📝 Exemplos de Uso

### Exemplo 1: Questionário de Qualificação Básica

**Nome**: Qualificação de Cliente 2026
**Perguntas**:
1. Porte da empresa (Radio - 10 pts)
   - Microempresa: 2 pts
   - Pequena: 5 pts
   - Média: 8 pts
   - Grande: 10 pts

2. Possui CNPJ ativo? (Radio - 5 pts)
   - Sim: 5 pts
   - Não: 0 pts

3. Interesse em parceria (Checkbox - 15 pts)
   - Comercial: 5 pts
   - Técnica: 5 pts
   - Estratégica: 5 pts

### Exemplo 2: Pesquisa de Satisfação

**Nome**: Pesquisa de Satisfação - Cliente
**Perguntas**:
1. Como avalia nosso atendimento? (Select - 10 pts)
   - Excelente: 10 pts
   - Bom: 7 pts
   - Regular: 4 pts
   - Ruim: 0 pts

2. Comentários adicionais (Textarea - 0 pts)

3. Recomendaria para outros? (Radio - 10 pts)
   - Sim: 10 pts
   - Talvez: 5 pts
   - Não: 0 pts

## 🐛 Troubleshooting

### Erro: "Tabela não encontrada"
- Execute o script SQL `criar_tabelas_questionario_template.sql`

### Perguntas não aparecem na ordem correta
- Use os botões de reordenação (⬆️⬇️) para ajustar manualmente

### Erro ao salvar opções com caracteres especiais
- O sistema usa JSON_UNESCAPED_UNICODE, mas verifique o charset do banco (deve ser utf8mb4)

## 📞 Suporte

Para dúvidas ou problemas, consulte a documentação do sistema principal ou entre em contato com o administrador.

## 📜 Changelog

### Versão 1.0.0 (30/01/2026)
- ✅ Lançamento inicial do módulo de Montagem de Questionário
- ✅ CRUD completo de questionários e perguntas
- ✅ Sistema de pontuação por opção
- ✅ Reordenação de perguntas
- ✅ 6 tipos de perguntas suportados
