# Promoções e Cashback (Fase 17.7)

Cashback em apostas conforme promoções ativas. Ex.: "Mega-Sena Turbinada" — 5% de volta em apostas na Mega-Sena.

## Configuração

### Migration

```bash
mysql -u user -p loteri31_premiada < db/migrations/009_promo_cashback.sql
```

A migration cria a tabela `promo_cashback` e insere a promo "Mega-Sena Turbinada" (5% em MG).

### Tabela promo_cashback

| Campo | Tipo | Descrição |
|-------|------|-----------|
| id | INT | PK |
| nome | VARCHAR(100) | Nome da promoção |
| sigla_loteria | VARCHAR(5) | MG, LF, etc. NULL = todas |
| percentual | DECIMAL(5,2) | % de cashback |
| valor_minimo | DECIMAL(10,2) | Valor mínimo da compra |
| ativo | TINYINT | 1=ativa |
| data_inicio | DATE | Início (NULL = sem limite) |
| data_fim | DATE | Fim (NULL = sem limite) |

## Fluxo

1. Cliente finaliza compra com crédito/prêmio
2. FinalizarService processa itens e cria jogos
3. Antes de limpar o carrinho: PromoCashbackService calcula cashback
4. Se houver promo ativa que se aplica: acrescenta crédito e registra extrato
5. Carrinho é limpo

## API

- `GET /api/v2/config/promocoes` — Lista promoções ativas (para banner no frontend)

## Frontend

- **PromoCashbackBanner** — Exibido na home e no carrinho quando há promos ativas
- Link para /carrinho ao clicar

## Admin

Para criar/editar promoções, usar SQL ou implementar CRUD no admin futuramente:

```sql
INSERT INTO promo_cashback (nome, sigla_loteria, percentual, valor_minimo, ativo)
VALUES ('Lotofácil Turbinada', 'LF', 3.00, 10.00, 1);
```
