How caiquesantosss/wrench-api-nest works
This is a NestJS backend for workshop operations, despite the README being an unmodified Nest starter description. The main workflow authenticates users, manages clients and their assets, opens and advances service orders, and records charges and payments; catalog stock and audit logging are supporting capabilities. Controllers dispatch to application use cases, which use domain entities and Prisma repositories. Edges reflect sampled calls and SOURCE INDEX references; unsampled subsystem links are omitted where their ownership could not be verified.
Main entry points: prisma.service.ts Prisma service · open-service-order-use-case.ts Open service order · ordem-servico.controller.ts Service order API · PrismaClientRepository.ts Client repository
Components 25
API and identity
- User endpoints
src/usuario/presentation/usuario.controller.ts - Authentication
src/usuario/application/use-cases/authenticate-user-use-case.ts - JWT guard
src/shared/guards/jwt-auth-guard.ts - User repository
src/usuario/infrastructure/database/PrismaUserRepository.ts
Workshop operations
- Client endpoints
src/cliente/presentation/cliente.controller.ts - Client management
src/cliente/application/use-cases/create-client-use-case.ts - Client repository
src/cliente/infrastructure/database/PrismaClientRepository.ts - Asset endpoints
src/ativo/presentation/ativo.controller.ts - Asset management
src/ativo/application/use-cases/create-ativo-use-case.ts - Asset repository
src/ativo/infrastructure/database/PrismaAtivoRepository.ts - Service order API
src/ordem-servico/presentation/ordem-servico.controller.ts - Open service order
src/ordem-servico/application/use-cases/open-service-order-use-case.ts - Order lifecycle
src/ordem-servico/application/use-cases/start-execution-use-case.ts - Order repository
src/ordem-servico/infrastructure/database/PrismaOrdemServicoRepository.ts - Catalog endpoints
src/catalogo-item/presentation/catalogo-item.controller.ts - Stock operations
src/catalogo-item/application/use-cases/add-stock-use-case.ts - Catalog repository
src/catalogo-item/infrastructure/database/PrismaCatalogItemRepository.ts
Finance and audit
- Finance endpoints
src/financeiro/presentation/financeiro.controller.ts - Charges and payments
src/financeiro/application/use-cases/generate-os-charge-use-case.ts - Finance repository
src/financeiro/infrastructure/database/PrismaFinanceiroRepository.ts - Audit endpoints
src/auditoria/presentation/auditoria.controller.ts - Audit repository
src/auditoria/infrastructure/database/PrismaAuditoriaRepository.ts - Audit listener
src/auditoria/application/listeners/auditoria.listener.ts
Persistence and shared
- Prisma service
src/prisma/prisma.service.ts
Other components
- API client
Connections 32
- API client → User endpoints: requests
src/usuario/presentation/usuario.controller.ts - User endpoints → Authentication: authenticates
src/usuario/presentation/usuario.controller.ts - Authentication → User repository: loads user
src/usuario/infrastructure/database/PrismaUserRepository.ts - API client → Client endpoints: manages clients
src/cliente/presentation/cliente.controller.ts - Client endpoints → Client management: dispatches
src/cliente/presentation/cliente.controller.ts - Client management → Client repository: persists client
src/cliente/cliente.module.ts - API client → Asset endpoints: manages assets
src/ativo/presentation/ativo.controller.ts - Asset endpoints → Asset management: dispatches
src/ativo/presentation/ativo.controller.ts - Asset management → Asset repository: uses repository
src/ativo/infrastructure/database/PrismaAtivoRepository.ts - API client → Service order API: requests service
src/ordem-servico/presentation/ordem-servico.controller.ts - Service order API → Open service order: opens order
src/ordem-servico/presentation/ordem-servico.controller.ts - Service order API → Order lifecycle: dispatches
src/ordem-servico/presentation/ordem-servico.controller.ts - Open service order → Client repository: checks client
src/ordem-servico/application/use-cases/open-service-order-use-case.ts - Open service order → Asset repository: checks ownership
src/ordem-servico/application/use-cases/open-service-order-use-case.ts - Open service order → Order repository: saves order
src/ordem-servico/application/use-cases/open-service-order-use-case.ts - API client → Catalog endpoints: manages stock
src/catalogo-item/presentation/catalogo-item.controller.ts - Catalog endpoints → Stock operations: dispatches
src/catalogo-item/presentation/catalogo-item.controller.ts - Stock operations → Catalog repository: uses repository
src/catalogo-item/infrastructure/database/PrismaCatalogItemRepository.ts - API client → Finance endpoints: records payments
src/financeiro/presentation/financeiro.controller.ts - Finance endpoints → Charges and payments: dispatches
src/financeiro/presentation/financeiro.controller.ts - Charges and payments → Finance repository: uses repository
src/financeiro/infrastructure/database/PrismaFinanceiroRepository.ts - API client → Audit endpoints: reviews audit
src/auditoria/presentation/auditoria.controller.ts - Audit endpoints → Audit repository: queries logs
src/auditoria/infrastructure/database/PrismaAuditoriaRepository.ts - User repository → Prisma service: queries
src/usuario/infrastructure/database/PrismaUserRepository.ts - Client repository → Prisma service: queries
- Asset repository → Prisma service: queries
src/ativo/infrastructure/database/PrismaAtivoRepository.ts - Order repository → Prisma service: queries
src/ordem-servico/infrastructure/database/PrismaOrdemServicoRepository.ts - Catalog repository → Prisma service: queries
src/catalogo-item/infrastructure/database/PrismaCatalogItemRepository.ts - Finance repository → Prisma service: queries
src/financeiro/infrastructure/database/PrismaFinanceiroRepository.ts - Audit repository → Prisma service: queries
src/auditoria/infrastructure/database/PrismaAuditoriaRepository.ts - Prisma service → Audit listener: emits audit event
- API client → JWT guard: supplies token
src/shared/guards/jwt-auth-guard.ts