Initial SeConectai briefing system
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
# 09 — Painel administrativo
|
||||
|
||||
## Contexto do projeto (leia sempre)
|
||||
Sistema web "Briefing de Site" da SeConectai: o cliente se cadastra e depois preenche o briefing de criação do site, com um botão **Ajuda** em cada pergunta que abre um popup com o texto do guia auxiliar. O dono (Tiago) acompanha tudo por um painel admin.
|
||||
**Stack fixa:** Next.js 14+ (App Router) + TypeScript, PostgreSQL 16, Prisma, Tailwind + shadcn/ui, React Hook Form + Zod, Auth.js v5 (Credentials, estratégia JWT), Docker Compose. Idioma da interface: pt-BR.
|
||||
**Regras gerais:** leia `00-arquitetura-briefing-site.md` e `99-progresso.md` antes de começar; não avance se a etapa anterior estiver incompleta; ao terminar, devolva o `99-progresso.md` atualizado. Não invente dependências fora da stack. Nada de senhas de clientes em lugar nenhum.
|
||||
|
||||
## Pré-requisito
|
||||
Etapas 01–08 concluídas.
|
||||
|
||||
## Tarefa
|
||||
Área `/admin` (somente ADMIN, checado no middleware **e** em cada server action):
|
||||
1. **Início:** contadores (briefings por status, novos nos últimos 7 dias) e últimos envios.
|
||||
2. **Clientes** `/admin/clientes`: tabela com busca (nome, e-mail, WhatsApp, CNPJ, razão social) e filtro PF/PJ; detalhe do cliente com dados cadastrais e seus briefings. CPF exibido **mascarado** (`***.123.456-**`) e só revelado completo por botão "Mostrar CPF" que registra o acesso em auditoria (`AuditoriaAcesso`: adminId, clienteId, ação, data — migration `0003`).
|
||||
3. **Briefings** `/admin/briefings/[id]`: todas as respostas por seção (em modo leitura, com as opções marcadas e o complemento), anexos com download, linha do tempo de status. Ações: mudar status (ENVIADO → EM_ANALISE → CONCLUIDO), **reabrir para edição**, adicionar nota interna (`NotaInterna`, invisível ao cliente).
|
||||
4. **Perguntas** `/admin/perguntas`: editar rótulo, dica, textos de ajuda (o que responder / por que perguntamos / mini exemplo), ordem, ativo e obrigatória, sem mexer em código. Desativar uma pergunta nunca apaga respostas já dadas.
|
||||
5. Link de WhatsApp (`wa.me`) no detalhe do cliente para contato rápido.
|
||||
|
||||
## Critérios de aceite
|
||||
- [ ] Usuário CLIENTE não acessa nenhuma rota/ação admin (testar chamada direta).
|
||||
- [ ] Editar um texto de ajuda reflete no popup do cliente imediatamente.
|
||||
- [ ] Reabrir briefing preserva respostas e anexos.
|
||||
- [ ] Revelar CPF gera registro de auditoria.
|
||||
|
||||
Atualize `99-progresso.md` (09).
|
||||
Reference in New Issue
Block a user