Parte do épico Captação de profissionais — landing page e aprovação interna (frente: frontend). Os mocks (Stitch/Notion) são base direcional, não fonte de verdade — ainda não há protótipo final.
Objetivo: Superfície /admin — login por senha e fila de moderação.
Arquivos: Create src/app/(admin)/admin/, src/features/admin/ · Modify src/kubb/ (regenerar cobrindo TODOS os endpoints) · Test cypress/e2e/admin-moderation.cy.js
Dependências: developmentHC/conectaBemBack#83 (moderação) + developmentHC/conectaBemBack#84 (Swagger)
O que fazer:
- Verificado: o web autentica via NextAuth (callbacks mapeiam só
patient/professional). Definir como o adminLogin entra no NextAuth e propagar userType: "admin". Tela de login /admin (e-mail + senha). Guard de rota é UX; a proteção real é o backend (requireAdmin); o front confirma o papel pela API.
- Lista
em_analise (GET pending) com Aprovar, Reprovar, Reverter. Estados: confirmação antes de Reprovar (motivo opcional); Aprovar imediato + toast; rollback otimista em falha; fila vazia; erros de login distintos (credenciais vs sem acesso).
Test scenarios: login correto/errado distintos; não-admin barrado; lista só em_analise; fila vazia; aprovar/reprovar/reverter atualizam; rollback otimista em falha de rede.
Pronto quando: o admin loga via NextAuth, vê a fila e aprova/reprova/reverte, com estados completos e rota protegida no backend.
Parte do épico Captação de profissionais — landing page e aprovação interna (frente: frontend). Os mocks (Stitch/Notion) são base direcional, não fonte de verdade — ainda não há protótipo final.
Objetivo: Superfície
/admin— login por senha e fila de moderação.Arquivos: Create
src/app/(admin)/admin/,src/features/admin/· Modifysrc/kubb/(regenerar cobrindo TODOS os endpoints) · Testcypress/e2e/admin-moderation.cy.jsDependências: developmentHC/conectaBemBack#83 (moderação) + developmentHC/conectaBemBack#84 (Swagger)
O que fazer:
patient/professional). Definir como oadminLoginentra no NextAuth e propagaruserType: "admin". Tela de login/admin(e-mail + senha). Guard de rota é UX; a proteção real é o backend (requireAdmin); o front confirma o papel pela API.em_analise(GET pending) com Aprovar, Reprovar, Reverter. Estados: confirmação antes de Reprovar (motivo opcional); Aprovar imediato + toast; rollback otimista em falha; fila vazia; erros de login distintos (credenciais vs sem acesso).Test scenarios: login correto/errado distintos; não-admin barrado; lista só
em_analise; fila vazia; aprovar/reprovar/reverter atualizam; rollback otimista em falha de rede.Pronto quando: o admin loga via NextAuth, vê a fila e aprova/reprova/reverte, com estados completos e rota protegida no backend.