# 8️⃣ RewardType_Voucher (Cabaz Digital / Benefício Corporativo)

## ✅ Campos que DEVEM aparecer:

- `campaign_name` (obrigatório)
- `sponsor_name` (opcional)
- `establishment_id` (obrigatório)
- `description` (opcional)
- `valid_from` (obrigatório)
- `valid_until` (obrigatório)
- `status` (obrigatório)
- `voucher_code` (opcional) - Código único do voucher
- `voucher_value` (obrigatório) - Valor do voucher em MZN
- `voucher_type` (obrigatório) - Tipo: 'digital', 'physical', 'hybrid'
- `voucher_category` (opcional) - Categoria: alimentação, vestuário, etc
- `voucher_description` (obrigatório) - Descrição detalhada do voucher
- `voucher_terms` (opcional) - Termos e condições
- `voucher_expiry_date` (obrigatório) - Data de expiração do voucher
- `voucher_usage_limit` (opcional, default: 1) - Limite de uso
- `voucher_min_purchase` (opcional) - Compra mínima para usar
- `voucher_max_discount` (opcional) - Desconto máximo em MZN
- `voucher_percentage` (opcional) - Percentual de desconto (0-100)
- `voucher_fixed_amount` (opcional) - Valor fixo de desconto
- `voucher_requires_code` (opcional, default: false) - Se requer código
- `voucher_single_use` (opcional, default: true) - Se é de uso único
- `voucher_apply_to` (opcional) - Aplicar a: 'total', 'items', 'shipping', 'specific'
- `image` / `images` (opcional)
- `notify_push`, `notify_sms`, `notify_email`, `notify_whatsapp` (opcional)
- `new_customers_only`, `vip_only` (opcional)

## ❌ Campos que NÃO devem aparecer:

- `min_purchase_amount` / `min_spend`
- `max_purchase_amount`
- `bonus_multiplier`
- `accumulation_rate`
- `total_points_limit`
- `conversion_rate`
- `reward_description` (usar `voucher_description` em vez disso)
- `reward_points_cost` (vouchers não custam pontos)
- `reward_stock` (usar `voucher_usage_limit` em vez disso)
- Todos os campos de Auto, Draw, Exchange, Quiz, Referral, Challenge, Party

## 📋 Exemplo de Formulário Completo:

```json
{
  "type": "RewardType_Voucher",
  "campaign_name": "Cabaz Digital de Natal",
  "sponsor_name": "Empresa XYZ",
  "establishment_id": 321,
  "description": "Voucher de benefício corporativo para funcionários",
  "valid_from": "2025-11-10T00:00:00Z",
  "valid_until": "2025-12-31T23:59:59Z",
  "status": "Activo",
  
  "voucher_code": "CABAZ2025",
  "voucher_value": 500,
  "voucher_type": "digital",
  "voucher_category": "alimentação",
  "voucher_description": "Voucher de 500 MZN para compras em supermercado",
  "voucher_terms": "Válido apenas para produtos alimentares. Não acumulável com outras promoções.",
  "voucher_expiry_date": "2025-12-31T23:59:59Z",
  "voucher_usage_limit": 1,
  "voucher_min_purchase": 100,
  "voucher_max_discount": 500,
  "voucher_percentage": null,
  "voucher_fixed_amount": 500,
  "voucher_requires_code": true,
  "voucher_single_use": true,
  "voucher_apply_to": "total",
  
  "image": "file",
  "notify_push": true,
  "notify_email": true,
  "vip_only": false,
  "new_customers_only": false
}
```

## 🎯 Validações:

- ✅ `voucher_value` deve ser > 0
- ✅ `voucher_type` deve ser 'digital', 'physical' ou 'hybrid'
- ✅ `voucher_description` é obrigatório
- ✅ `voucher_expiry_date` deve ser posterior a `valid_from`
- ✅ `voucher_usage_limit` deve ser ≥ 1
- ✅ `voucher_percentage` deve estar entre 0 e 100 (se fornecido)
- ✅ `voucher_apply_to` deve ser 'total', 'items', 'shipping' ou 'specific' (se fornecido)
- ✅ Se `voucher_percentage` for fornecido, `voucher_fixed_amount` deve ser null
- ✅ Se `voucher_fixed_amount` for fornecido, `voucher_percentage` deve ser null

## 💡 Casos de Uso:

1. **Cabaz Digital**: Voucher pré-pago para compras em estabelecimentos parceiros
2. **Benefício Corporativo**: Vouchers dados por empresas aos seus funcionários
3. **Voucher de Desconto**: Desconto percentual ou fixo em compras
4. **Voucher de Frete Grátis**: Desconto aplicado apenas ao frete








