# 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 ✓