4.2 KiB
4.2 KiB
Plano de Desenvolvimento — Sistema de Chamados
Diretriz máxima: todas as respostas, comunicações e documentações devem ser redigidas em português brasileiro.
Contato principal
- Esdras Renan — monkeyesdras@gmail.com
Credenciais padrão (Better Auth)
- Administrador:
admin@sistema.dev/admin123 - Agente Demo:
agente.demo@sistema.dev/agent123 - Cliente Demo:
cliente.demo@sistema.dev/cliente123
Execute
pnpm auth:seedapós configurar.env. O script atualiza as contas acima ou cria novas conforme variáveisSEED_USER_*.
Sincronização com Convex
- Usuários e tickets demo são garantidos via
convex/seed.ts. - Após iniciar
pnpm convex:dev, acesse/dev/seeduma vez por ambiente local para carregar dados reais de demonstração no banco do Convex.
Setup local rápido
pnpm install- Ajuste
.env(ou crie a partir do exemplo) e confirmeNEXT_PUBLIC_CONVEX_URLapontando para o Convex local. pnpm auth:seed- (Opcional)
pnpm queues:ensure pnpm convex:dev- Em outro terminal:
pnpm dev
Estado atual
- Autenticação Better Auth com guardas client-side (
AuthGuard) bloqueando rotas protegidas. - Menu de usuário no rodapé da sidebar com link para
/settingse logout confiável. - Formulários de novo ticket (dialog, página e portal) com seleção de responsável, placeholders claros e validação obrigatória de assunto/descrição/categorias.
- Portal do cliente restringe visualização e criação ao próprio requester; clientes não atribuem responsáveis.
- Relatórios e dashboards utilizam
AppShell, garantindo header/sidebar consistentes.
Entregas recentes relevantes
- Correção do redirecionamento após logout evitando retorno imediato ao dashboard.
- Validações manuais dos formulários de rich text para eliminar
ZodErrordurante edição. - Dropdown de responsáveis na criação de tickets com preenchimento automático pelo autor e evento inicial de comentário.
- Indicadores visuais de campos obrigatórios e botão "Novo ticket" funcional no cabeçalho do detalhe.
- Seeds (Better Auth e Convex) ampliados para incluir agente e cliente de teste.
Fluxos suportados
Equipe interna (admin/agent/collaborator)
- Criar tickets com categorias, responsável inicial e anexos.
- Abrir novos tickets diretamente a partir do detalhe via dialog reutilizável.
- Acessar
/settingspara ajustes pessoais e efetuar logout pelo menu.
Clientes
- Autenticam com
cliente.demo@sistema.dev. - Abrem tickets para si mesmos a partir do portal com assunto/descrição obrigatórios.
- Não visualizam campo de responsável nem tickets de outros usuários.
Próximos passos sugeridos
- Finalizar redefinição de senha/auditoria de convites Better Auth.
- Expandir cobertura de testes (
vitest) para guardas de autenticação e criação de tickets. - Implementar ações rápidas (status/fila) diretamente na listagem de tickets.
- Definir limites e monitoramento para anexos por tenant.
Rotina antes de abrir PR
pnpm lintpnpm build --turbopackpnpm exec vitest run- Revisar toasts/labels em PT-BR e ausência de segredos no diff.
Convenções
- Convex deve retornar apenas tipos primitivos; converta datas via mappers em
src/lib/mappers. - Manter textos em PT-BR e evitar comentários supérfluos no código.
- Reutilizar componentes shadcn existentes e seguir o estilo do arquivo editado.
- Validações client-side críticas devem sinalizar erros inline e exibir toast.
Estrutura útil
convex/— queries e mutations (ex.:tickets.ts,users.ts).src/components/tickets/— UI interna (dialog, listas, header, timeline).src/components/portal/— formulários e fluxos do portal do cliente.scripts/— seeds Better Auth e utilidades.src/components/auth/auth-guard.tsx— proteção de rotas client-side.
Histórico resumido
- Scaffold Next.js + Turbopack configurado com Better Auth e Convex.
- Portal do cliente entregue com isolamento por
viewerId. - Fluxo de convites e painel administrativo operacionais.
- Iteração atual focada em UX de criação de tickets, consistência de layout e guardas de sessão.