2.5 KiB
03 — Seed do briefing (seções, perguntas e ajudas)
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
Etapa 02 concluída.
Arquivo de dados
prisma/briefing-seed.json (fornecido junto com este guia; copie para prisma/). Estrutura:
{ "meta": { "comoPreencher": [..], "avisoSenhas": "..", "confirmacaoCliente": ".." },
"secoes": [ { "ordem": 1, "titulo": "..", "descricao": "..",
"perguntas": [ { "ordem": 1, "rotulo": "..", "dica": "..", "tipo": "TEXTAREA|RADIO|CHECKBOX|ANEXO",
"opcoes": ["..."], "permiteComplemento": true,
"ajuda": { "oQueResponder": "..", "porQuePerguntamos": "..", "miniExemplo": ".." } } ] } ] }
O arquivo tem 19 seções e 149 perguntas; todas têm ajuda.
Tarefa
- Criar
prisma/seed.tsidempotente (upsert porsecao.ordeme porsecaoId+ordem): criaSecao,PerguntaeAjuda. Reexecutar o seed atualiza textos sem duplicar e sem apagar respostas existentes. - Guardar
meta(como preencher, aviso de senhas, confirmação do cliente) em uma tabelaConfiguracao (chave, valor Json)— adicionar via migration0002_configuracao. - No mesmo seed, criar o usuário ADMIN a partir de
ADMIN_EMAIL/ADMIN_INITIAL_PASSWORD(hash argon2), apenas se não existir. - Configurar
prisma.seednopackage.json. - Criar
lib/briefing-queries.tscomgetEstruturaBriefing()que retorna seções → perguntas → ajuda, ordenadas, em uma única consulta.
Critérios de aceite
- Após
npm run db:seed: 19 seções, 149 perguntas, 149 ajudas. - Rodar o seed duas vezes não duplica nada.
- Contagem por tipo: TEXTAREA 117, RADIO 11, CHECKBOX 6, ANEXO 15.
- Admin criado; senha só em hash.
Atualize 99-progresso.md (03).