- Status renomeados e cores (Em andamento azul, Pausado amarelo) - Transições automáticas: iniciar=Em andamento, pausar=Pausado - Fila padrão: Chamados ao criar ticket - Admin/Empresas: renomeia ‘Slug’ → ‘Apelido’ + mensagens - Dashboard: últimos tickets priorizam sem responsável (mais antigos) - Tickets: filtro por responsável + salvar filtro por usuário - Encerrar ticket: adiciona botão ‘Cancelar’ - Strings atualizadas (PDF, relatórios, badges) |
||
|---|---|---|
| .github/workflows | ||
| apps/desktop | ||
| convex | ||
| docs | ||
| Inter,Manrope/Inter | ||
| prisma | ||
| public | ||
| scripts | ||
| src | ||
| tests | ||
| types | ||
| .env.example | ||
| .gitignore | ||
| agents.md | ||
| auth.ts | ||
| build.log | ||
| components.json | ||
| eslint.config.mjs | ||
| middleware.ts | ||
| next.config.ts | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| postcss.config.mjs | ||
| PROXIMOS_PASSOS.md | ||
| README.md | ||
| resp.json | ||
| stack.yml | ||
| tsconfig.json | ||
| vitest.config.mts | ||
| vitest.setup.ts | ||
Sistema de Chamados
Aplicação Next.js 15 com Convex e Better Auth para gestão de tickets da Rever. Todo o código-fonte está organizado diretamente na raiz do repositório, conforme convenções do Next.js.
Requisitos
- Node.js >= 20
- pnpm >= 8
- CLI do Convex (
pnpm dlx convex devinstalará automaticamente no primeiro uso)
Configuração rápida
- Instale as dependências:
pnpm install - Ajuste o arquivo
.env(ou crie a partir de.env.example) e confirme os valores de:NEXT_PUBLIC_CONVEX_URL(gerado pelo Convex Dev)BETTER_AUTH_SECRET,BETTER_AUTH_URL,DATABASE_URL
- Aplique as migrações e gere o client Prisma:
pnpm prisma migrate deploy pnpm prisma:generate - Popule usuários padrão do Better Auth:
pnpm auth:seed - (Opcional) Para re-sincronizar manualmente as filas padrão, execute:
pnpm queues:ensure - Em um terminal, execute o backend em tempo real do Convex:
pnpm convex:dev - Em outro terminal, suba o frontend Next.js:
pnpm dev - Com o Convex ativo, acesse
http://localhost:3000/dev/seeduma vez para popular dados de demonstração (tickets, usuários, comentários) diretamente no banco do Convex.
Se o CLI perguntar sobre configuração do projeto Convex, escolha criar um novo deployment local (opção padrão) e confirme. As credenciais são armazenadas em
.convex/automaticamente.
Deploy em produção (Traefik + Convex self‑hosted)
- Guia completo:
docs/OPERACAO-PRODUCAO.md:1. - Histórico de setup/decisões:
docs/SETUP-HISTORICO.md:1. - Stack Swarm:
stack.yml:1(roteado por Traefik, redetraefik_public).
Variáveis de ambiente
- Exemplo na raiz:
.env.example— copie para.enve preencha segredos. - App Desktop:
apps/desktop/.env.example— copie paraapps/desktop/.enve ajusteVITE_APP_URL. - Nunca faça commit de arquivos
.envcom valores reais (já ignorados em.gitignore).
Guia de DEV (Prisma, Auth e Desktop/Tauri)
Para fluxos detalhados de desenvolvimento — banco de dados local (SQLite/Prisma), seed do Better Auth, ajustes do Prisma CLI no DEV e build do Desktop (Tauri) — consulte docs/DEV.md.
Scripts úteis
pnpm lint— ESLint com as regras do projeto.pnpm exec vitest run— suíte de testes unitários.pnpm auth:seed— atualiza/cria contas padrão do Better Auth (credenciais emagents.md).pnpm prisma migrate deploy— aplica migrações ao banco SQLite local.pnpm convex:dev— roda o Convex em modo desenvolvimento, gerando tipos emconvex/_generated.
Estrutura principal
app/dentro desrc/— rotas e layouts do Next.js (App Router).components/— componentes reutilizáveis (UI, formulários, layouts).convex/— queries, mutations e seeds do Convex.prisma/— schema, migrações e banco SQLite (prisma/db.sqlite).scripts/— utilitários em Node para sincronização e seeds adicionais.agents.md— guia operacional e contexto funcional (em PT-BR).PROXIMOS_PASSOS.md— backlog de melhorias futuras.
Credenciais de demonstração
Após executar pnpm auth:seed, as credenciais padrão ficam disponíveis conforme descrito em agents.md (seção “Credenciais padrão”). Ajuste variáveis SEED_USER_* se precisar sobrepor usuários ou senhas durante o seed.
Próximos passos
Consulte PROXIMOS_PASSOS.md para acompanhar o backlog funcional e o progresso das iniciativas planejadas.
Diagnóstico de sessão da máquina (Desktop)
- Quando o portal for aberto via app desktop, use a página
https://seu-app/portal/debugpara validar cookies e contexto:/api/auth/get-sessiondeve idealmente mostraruser.role = "machine"(em alguns ambientes WebView pode retornarnull, o que não é bloqueante)./api/machines/sessiondeve retornar200comassignedUserId/assignedUserEmail.
- O frontend agora preenche
machineContextmesmo queget-sessionretornenull, e deriva o papel efetivo a partir desse contexto. - Se
machines/sessionretornar401/403, revise CORS/credenciais e o fluxo de handshake documentados emdocs/OPERACAO-PRODUCAO.md.