Matheus
52e1b4f3b7
feat(frontend): Discador > Leads (tela dedicada)
...
/app/discador/leads — seletor de campanha, busca por telefone/nome,
adicionar lead individual, remover com confirmação de 2 cliques. O
backend (GET/POST/DELETE /campaigns/:campaignId/leads) já existia desde a
PHASE 15; a prévia de leads no detalhe da campanha já apontava pra esta
tela ("a lista completa vive em Discador > Leads") desde a PHASE 26, só
faltava construir.
LEAD_STATUS_LABELS novo (16 valores) — badge própria, não reusa
StatusBadge (mesma cautela de gênero de AgentStateBadge/TenantStatusBadge:
READY/FAILED/COMPLETED colidiriam com rótulos de campanha).
Testado ponta a ponta: campanha de teste criada, 3 leads adicionados (2
via API, 1 via UI), busca filtrando corretamente, remoção confirmada via
API. Smoke test nas 19 telas do tenant + platform, todas 200.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BFaBaBSQGhyXGEgtTYZGV8
2026-08-30 00:44:09 -03:00
..
2026-08-30 00:22:18 -03:00
2026-08-30 00:22:18 -03:00
2026-08-30 00:22:18 -03:00
2026-08-30 00:22:18 -03:00
2026-08-29 16:37:32 -03:00
2026-08-29 16:37:32 -03:00
2026-08-29 16:37:32 -03:00
2026-08-29 16:37:32 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 10:55:08 -03:00
2026-08-29 10:55:08 -03:00
2026-08-29 10:55:08 -03:00
2026-08-29 10:55:08 -03:00
2026-08-29 00:54:29 -03:00
2026-08-29 00:54:29 -03:00
2026-08-29 16:10:45 -03:00
2026-08-29 16:10:45 -03:00
2026-08-29 16:10:45 -03:00
2026-08-29 16:10:45 -03:00
2026-08-29 16:10:45 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 16:20:01 -03:00
2026-08-29 16:30:33 -03:00
2026-08-29 16:30:33 -03:00
2026-08-29 16:30:33 -03:00
2026-08-30 00:44:09 -03:00
2026-08-30 00:44:09 -03:00
2026-08-30 00:44:09 -03:00
2026-08-30 00:44:09 -03:00
2026-08-29 19:17:39 -03:00
2026-08-29 19:17:39 -03:00
2026-08-29 19:17:39 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 20:04:05 -03:00
2026-08-29 20:31:12 -03:00
2026-08-29 20:31:12 -03:00
2026-08-29 20:31:12 -03:00
2026-08-29 20:41:19 -03:00
2026-08-29 19:50:12 -03:00
2026-08-29 19:50:12 -03:00
2026-08-29 20:31:12 -03:00
2026-08-29 20:04:05 -03:00
2026-08-29 20:31:12 -03:00
2026-08-29 19:50:12 -03:00
2026-08-29 19:50:12 -03:00
2026-08-29 19:50:12 -03:00
2026-08-29 19:50:12 -03:00
2026-08-29 19:50:12 -03:00
2026-08-29 20:04:05 -03:00
2026-08-29 00:54:29 -03:00
2026-08-29 00:54:29 -03:00
2026-08-29 00:54:29 -03:00
2026-08-29 00:54:29 -03:00
2026-08-29 16:30:33 -03:00
2026-08-29 16:30:33 -03:00
2026-08-29 16:30:33 -03:00
2026-08-29 10:17:06 -03:00
2026-08-29 10:17:06 -03:00
2026-08-29 10:17:06 -03:00
2026-08-29 10:17:06 -03:00
2026-08-29 10:17:06 -03:00
2026-08-29 10:17:06 -03:00
2026-08-29 10:17:06 -03:00
2026-08-29 10:17:06 -03:00
2026-08-29 00:54:29 -03:00
2026-08-29 00:54:29 -03:00
2026-08-29 09:30:16 -03:00
2026-08-29 14:34:24 -03:00
2026-08-29 14:34:24 -03:00
2026-08-29 16:20:01 -03:00
2026-08-29 14:34:24 -03:00
2026-08-29 14:34:24 -03:00
2026-08-29 16:30:33 -03:00
2026-08-29 16:30:33 -03:00
2026-08-29 00:54:29 -03:00
2026-08-29 00:54:29 -03:00
2026-08-29 00:54:29 -03:00
2026-08-29 00:54:29 -03:00
2026-08-29 09:30:16 -03:00
2026-08-29 09:30:16 -03:00
2026-08-29 09:30:16 -03:00
2026-08-29 09:30:16 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 11:50:09 -03:00
2026-08-29 10:55:08 -03:00
2026-08-29 10:55:08 -03:00
2026-08-29 10:55:08 -03:00
2026-08-29 10:55:08 -03:00
2026-08-29 10:55:08 -03:00