# 📝 Exemplo Completo: Formulário de Quiz

## 🎯 Estrutura do Formulário

### Passo 1: Informações Básicas

```json
{
  "type": "RewardType_Quiz",
  "campaign_name": "Quiz Gastronómico Mimos",
  "sponsor_name": "Restaurante Mimos",
  "establishment_id": 321,
  "description": "Teste os teus conhecimentos sobre o Restaurante Mimos e ganha pontos!",
  "valid_from": "2025-11-10T00:00:00Z",
  "valid_until": "2025-11-20T23:59:59Z",
  "status": "Activo"
}
```

### Passo 2: Configurações do Quiz

```json
{
  "quiz_points_per_correct": 10,
  "quiz_max_attempts": 3,
  "quiz_time_limit_seconds": 30
}
```

### Passo 3: Adicionar Questões

#### Questão 1:
```json
{
  "id": "q1",
  "question": "Qual é o prato mais popular do Restaurante Mimos?",
  "options": [
    "Frango Grelhado",
    "Peixe Grelhado",
    "Carne de Vaca",
    "Pizza"
  ],
  "correct_answer": 0,
  "points": 10,
  "explanation": "O Frango Grelhado é o prato mais pedido pelos clientes, representando 40% das vendas."
}
```

#### Questão 2:
```json
{
  "id": "q2",
  "question": "Quantos pontos ganha por cada 100 MZN gastos no Restaurante Mimos?",
  "options": [
    "10 pontos",
    "100 pontos",
    "1000 pontos",
    "1 ponto"
  ],
  "correct_answer": 0,
  "points": 10,
  "explanation": "A taxa padrão é 1 MT = 10 pontos, então 100 MT = 1000 pontos."
}
```

#### Questão 3:
```json
{
  "id": "q3",
  "question": "Qual é o horário de funcionamento do Restaurante Mimos?",
  "options": [
    "8h - 20h",
    "9h - 21h",
    "10h - 22h",
    "24 horas"
  ],
  "correct_answer": 1,
  "points": 10,
  "explanation": "O Restaurante Mimos funciona das 9h às 21h, de segunda a domingo."
}
```

### Passo 4: Upload de Imagens (Opcional)

```json
{
  "image": "file_upload",
  "images": ["file1", "file2"]
}
```

### Passo 5: Notificações (Opcional)

```json
{
  "notify_push": true,
  "notify_sms": false,
  "notify_email": true,
  "notify_whatsapp": false,
  "communication_budget": 100
}
```

---

## 📋 JSON Final Completo

```json
{
  "type": "RewardType_Quiz",
  "campaign_name": "Quiz Gastronómico Mimos",
  "sponsor_name": "Restaurante Mimos",
  "establishment_id": 321,
  "description": "Teste os teus conhecimentos sobre o Restaurante Mimos e ganha pontos!",
  "valid_from": "2025-11-10T00:00:00Z",
  "valid_until": "2025-11-20T23:59:59Z",
  "status": "Activo",
  "quiz_questions": [
    {
      "id": "q1",
      "question": "Qual é o prato mais popular do Restaurante Mimos?",
      "options": [
        "Frango Grelhado",
        "Peixe Grelhado",
        "Carne de Vaca",
        "Pizza"
      ],
      "correct_answer": 0,
      "points": 10,
      "explanation": "O Frango Grelhado é o prato mais pedido pelos clientes, representando 40% das vendas."
    },
    {
      "id": "q2",
      "question": "Quantos pontos ganha por cada 100 MZN gastos no Restaurante Mimos?",
      "options": [
        "10 pontos",
        "100 pontos",
        "1000 pontos",
        "1 ponto"
      ],
      "correct_answer": 0,
      "points": 10,
      "explanation": "A taxa padrão é 1 MT = 10 pontos, então 100 MT = 1000 pontos."
    },
    {
      "id": "q3",
      "question": "Qual é o horário de funcionamento do Restaurante Mimos?",
      "options": [
        "8h - 20h",
        "9h - 21h",
        "10h - 22h",
        "24 horas"
      ],
      "correct_answer": 1,
      "points": 10,
      "explanation": "O Restaurante Mimos funciona das 9h às 21h, de segunda a domingo."
    }
  ],
  "quiz_points_per_correct": 10,
  "quiz_max_attempts": 3,
  "quiz_time_limit_seconds": 30,
  "notify_push": true,
  "notify_email": true,
  "communication_budget": 100,
  "notes": "Quiz criado para promover conhecimento sobre o restaurante"
}
```

---

## 🎨 Interface Sugerida (Frontend)

### Layout do Formulário:

```
┌─────────────────────────────────────────┐
│  Criar Nova Campanha - Quiz            │
├─────────────────────────────────────────┤
│                                         │
│  [1] Informações Básicas               │
│  ┌───────────────────────────────────┐ │
│  │ Tipo: [RewardType_Quiz ▼]        │ │
│  │ Nome: [________________]         │ │
│  │ Sponsor: [____________]           │ │
│  │ Estabelecimento: [____▼]          │ │
│  │ Descrição: [____________]         │ │
│  │ Data Início: [📅]                 │ │
│  │ Data Fim: [📅]                    │ │
│  │ Status: [Activo ▼]                │ │
│  └───────────────────────────────────┘ │
│                                         │
│  [2] Configurações do Quiz             │
│  ┌───────────────────────────────────┐ │
│  │ Pontos por resposta: [10]         │ │
│  │ Máximo de tentativas: [3]         │ │
│  │ Tempo limite (seg): [30]          │ │
│  └───────────────────────────────────┘ │
│                                         │
│  [3] Questões                          │
│  ┌───────────────────────────────────┐ │
│  │ [+ Adicionar Questão]             │ │
│  │                                   │ │
│  │ Questão 1:                        │ │
│  │ ┌───────────────────────────────┐ │ │
│  │ │ Pergunta: [____________]      │ │ │
│  │ │ Opção 1: [____________] ✓     │ │ │
│  │ │ Opção 2: [____________]       │ │ │
│  │ │ Opção 3: [____________]       │ │ │
│  │ │ Opção 4: [____________]       │ │ │
│  │ │ [+ Adicionar Opção]           │ │ │
│  │ │ Pontos: [10]                  │ │ │
│  │ │ Explicação: [____________]    │ │ │
│  │ │ [🗑️ Remover]                  │ │ │
│  │ └───────────────────────────────┘ │ │
│  │                                   │ │
│  │ Questão 2: ...                    │ │
│  └───────────────────────────────────┘ │
│                                         │
│  [4] Imagens (Opcional)                │
│  ┌───────────────────────────────────┐ │
│  │ [📷 Upload Imagem]                 │ │
│  │ [📷 Upload Múltiplas Imagens]     │ │
│  └───────────────────────────────────┘ │
│                                         │
│  [5] Notificações (Opcional)           │
│  ┌───────────────────────────────────┐ │
│  │ ☑ Push  ☐ SMS  ☑ Email  ☐ WhatsApp│ │
│  │ Orçamento: [100] MZN              │ │
│  └───────────────────────────────────┘ │
│                                         │
│  [Cancelar]  [Salvar como Rascunho]    │
│              [Criar Campanha]          │
└─────────────────────────────────────────┘
```

### Validações em Tempo Real:

1. **Ao adicionar questão:**
   - Verificar se tem pelo menos 2 opções
   - Verificar se resposta correta está selecionada
   - Verificar se pergunta não está vazia

2. **Ao salvar:**
   - Verificar se tem pelo menos 1 questão
   - Verificar se todas as questões são válidas
   - Verificar se datas são válidas
   - Verificar se campos obrigatórios estão preenchidos

3. **Feedback visual:**
   - ✅ Questão válida (verde)
   - ⚠️ Questão com avisos (amarelo)
   - ❌ Questão inválida (vermelho)

