# Sexta — Lista de Tarefas

## Backend — Endpoints que faltam

- [x] `GET /api/admin/notification-errors` — listar falhas definitivas de envio WhatsApp (tabela `notification_errors`, paginação, filtro por phone/data)
- [x] `GET /api/admin/nw-events` — listar eventos recebidos via webhook NewWhats (tabela `nw_event_logs`, filtro event/instance/data)
- [x] Adicionar tipos de clube nos TYPE_TABS do endpoint `/analytics/whatsapp-logs` (club_welcome, club_payment_confirmed, club_payment_overdue, club_suspended, club_canceled, club_payment_reminder)

## Admin-app — WhatsApp Logs

- [x] Atualizar `WhatsAppLogs.tsx`: adicionar tabs para todos os tipos de clube
- [x] Adicionar aba **Falhas Definitivas** na página WhatsApp Logs — consome `notification_errors`, exibe phone, error_message, payload, data
- [x] Adicionar aba **Inbox (Recebidos)** — consome `nw_event_logs`, exibe instance_id, direction, chat_id, msg_type, payload resumido, data

## Correções de bugs

- [x] `club_partners` — tabela criada com colunas PT (`nome`, `especialidade`…) mas model usa EN (`name`, `specialty`…). Corrigido: CREATE TABLE agora usa EN + migração RENAME COLUMN idempotente
- [x] `PATCH /api/me/optin` — controller lia `req.body.optin` mas frontend enviava `whatsapp_optin`. Corrigido: aceita ambos
- [x] `findByUserCpf` no Ticket retornava `raffle_titulo` mas Dashboard esperava `raffle_name`. Corrigido alias para `raffle_name`
- [x] Dashboard usava `t.created_at` mas campo correto é `data_compra`. Corrigido com fallback

## Customer-app — Testar e corrigir páginas

- [x] `DashboardPage` — campos corrigidos (`raffle_name`, `data_compra`), optin corrigido
- [x] `CarteirinhaPage` — rota `/carteirinha/:cpf`, campos do `getCard` OK (`club_name`, `plan_name`, `user_cpf`, `user_nome`)
- [x] `ClubePage` — planos OK, parceiros OK (campos `name`, `specialty`, `discount_percent`), modal de adesão OK
- [x] `RafflePage` — campos `titulo`, `preco_numero`, `total_numeros` corretos; endpoint `/api/raffle/:id/tickets` OK
- [x] `DashboardPage` — toggle WhatsApp opt-in (`PATCH /api/me/optin`) corrigido

## Build e deploy

- [x] Build `customer-app` → sem erros de TypeScript ✓
- [x] Build `admin-app` → sem erros de TypeScript ✓
- [x] Servidor reiniciado e smoke tests passando ✓
