2.3 KiB
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):
- Início: contadores (briefings por status, novos nos últimos 7 dias) e últimos envios.
- 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 — migration0003). - 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). - 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. - 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).