- Adiciona rota API para arquivar tickets por ID - Atualiza configuracao do Prisma para PostgreSQL - Simplifica workflow CI/CD - Adiciona src/generated ao gitignore - Atualiza documentacao e dependencias 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7.5 KiB
Sistema de Chamados
Aplicacao Next.js 16 (App Router) com React 19, Convex e Better Auth para gestao de tickets da Rever. A stack ainda inclui Prisma 7 (PostgreSQL), Tailwind e Turbopack como bundler padrao (webpack permanece disponivel como fallback). Todo o codigo-fonte fica na raiz do monorepo seguindo as convencoes do App Router.
Requisitos
- Bun >= 1.3 (recomendado 1.3.1). Após instalar via script oficial, adicione
export PATH="$HOME/.bun/bin:$PATH"ao seu shell (ex.:.bashrc) para terbundisponível globalmente. - Node.js >= 20 (necessário para ferramentas auxiliares como Prisma CLI e Next.js em modo fallback).
- CLI do Convex (
bunx convex devinstalará automaticamente no primeiro uso, se ainda não estiver presente). - GitHub Actions/autodeploy dependem dessas versões e do CLI do Convex disponível; use
npx convex --helppara confirmar.
Configuração rápida
- Instale as dependências:
bun 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(PostgreSQL, ex:postgresql://postgres:dev@localhost:5432/sistema_chamados)
- Aplique as migrações e gere o client Prisma:
bunx prisma migrate deploy bun run prisma:generate - Popule usuários padrão do Better Auth:
bun run auth:seedSempre que trocar de máquina ou quiser “zerar” o ambiente local, basta repetir os passos 3 e 4 com a mesma
DATABASE_URL.
Resetar rapidamente o ambiente local
- Suba um PostgreSQL local (Docker recomendado):
docker run -d --name postgres-dev -p 5432:5432 -e POSTGRES_PASSWORD=dev -e POSTGRES_DB=sistema_chamados postgres:18 - Aplique as migracoes:
bunx prisma migrate deploy - Recrie/garanta as contas padrao de login:
bun run auth:seed - Suba o servidor normalmente com
bun run dev.
Subir serviços locais
- (Opcional) Para re-sincronizar manualmente as filas padrão, execute
bun run queues:ensure. - Em um terminal, rode o backend em tempo real do Convex com
bun run convex:dev:bun(oubun run convex:devpara o runtime Node). - Em outro terminal, suba o frontend Next.js (Turbopack) com
bun run dev:bun(bun run dev:webpackserve como fallback). - Com o Convex rodando, acesse
http://localhost:3000/dev/seeduma vez para popular dados de demonstração (tickets, usuários, comentários).
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.
Documentação
- Índice de docs:
docs/README.md - Operações (produção):
docs/OPERATIONS.md(versão EN) edocs/OPERACAO-PRODUCAO.md(PT-BR) - Guia de DEV:
docs/DEV.md - Testes automatizados (Vitest/Playwright):
docs/testes-vitest.md - Stack Swarm:
stack.yml(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 (PostgreSQL/Prisma), seed do Better Auth, ajustes do Prisma CLI no DEV e build do Desktop (Tauri) — consulte docs/DEV.md.
Scripts úteis
bun run dev:bun— padrão atual para o Next.js com runtime Bun (bun run dev:webpackpermanece como fallback).bun run convex:dev:bun— runtime Bun para o Convex (bun run convex:devmantém o fluxo antigo usando Node).bun run build:bun/bun run start:bun— build e serve com Bun usando Turbopack (padrão atual).bun run dev:webpack— fallback do Next.js em modo desenvolvimento (webpack).bun run lint— ESLint com as regras do projeto.bun test— suíte de testes unitários usando o runner do Bun (o teste de screenshot fica automaticamente ignorado se o matcher não existir).bun run build— executanext build --turbopack(runtime Node, caso prefira evitar o--bun).bun run build:webpack— executanext build --webpackcomo fallback oficial.bun run auth:seed— atualiza/cria contas padrao do Better Auth (credenciais emagents.md).bunx prisma migrate deploy— aplica migracoes ao banco PostgreSQL.bun run convex:dev— roda o Convex em modo desenvolvimento com Node, gerando tipos emconvex/_generated.
Transferir dispositivo entre colaboradores
Quando uma dispositivo trocar de responsável:
- Abra
Admin > Dispositivos, selecione o equipamento e clique em Resetar agente. - No equipamento, execute o reset local do agente (
rever-agent resetou reinstale o serviço) e reprovisione com o código da empresa. - Após o agente gerar um novo token, associe a dispositivo ao novo colaborador no painel.
Sem o reset de agente, o Convex reaproveita o token anterior e o inventário continua vinculado ao usuário antigo.
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 e migracoes do Prisma (PostgreSQL).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 bun run 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.
Executar com Bun
bun installé o fluxo padrão (o arquivobun.lockdeve ser versionado; usebun install --frozen-lockfileem CI).bun run dev:bun,bun run convex:dev:bun,bun run build:bunebun run start:bunjá estão configurados; internamente executambun run --bun <script>para usar o runtime do Bun sem abrir mão dos scripts existentes. Ocross-envgarante os valores esperados deNODE_ENV(development/production).- O bundler padrão é o Turbopack; se precisar comparar/debugar com webpack, use
bun run build:webpack. bun testutiliza o test runner do Bun. O teste de snapshot de screenshot é automaticamente ignorado quando o matcher não está disponível; testes de navegador completos continuam viabun run test:browser(Vitest + Playwright).
Diagnóstico de sessão da dispositivo (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.