How caiquedevbr/pdv-loja-roupas-api works
This is a Spring Boot REST API for a clothing-store point of sale. Clients manage customers, categories, products, inventory, and sales through paginated CRUD and lookup endpoints; sales contain multiple products. Each resource controller delegates operations to a service, which accesses a repository, while HATEOAS assemblers shape resource responses. The README documents endpoint capabilities and entity relationships; sampled source confirms several controller/service and service/repository calls, but not every resource implementation in full.
Main entry points: Produto.java Product Model · Venda.java Sale Model · CategoriaController.java Category Endpoints · ClienteController.java Customer Endpoints
Components 26
REST API
- Category Endpoints
src/main/java/br/com/caiquedev/pdvloja/controller/CategoriaController.java - Customer Endpoints
src/main/java/br/com/caiquedev/pdvloja/controller/ClienteController.java - Inventory Endpoints
src/main/java/br/com/caiquedev/pdvloja/controller/EstoqueController.java - Product Endpoints
src/main/java/br/com/caiquedev/pdvloja/controller/ProdutoController.java - Sales Endpoints
src/main/java/br/com/caiquedev/pdvloja/controller/VendaController.java
Application Services
- Category Service
src/main/java/br/com/caiquedev/pdvloja/service/CategoriaService.java - Customer Service
src/main/java/br/com/caiquedev/pdvloja/service/ClienteService.java - Inventory Service
src/main/java/br/com/caiquedev/pdvloja/service/EstoqueService.java - Product Service
src/main/java/br/com/caiquedev/pdvloja/service/ProdutoService.java - Sales Service
src/main/java/br/com/caiquedev/pdvloja/service/VendaService.java
Domain and Persistence
- Category Repository
src/main/java/br/com/caiquedev/pdvloja/repository/CategoriaRepository.java - Customer Repository
src/main/java/br/com/caiquedev/pdvloja/repository/ClienteRepository.java - Inventory Repository
src/main/java/br/com/caiquedev/pdvloja/repository/EstoqueRepository.java - Product Repository
src/main/java/br/com/caiquedev/pdvloja/repository/ProdutoRepository.java - Sales Repository
src/main/java/br/com/caiquedev/pdvloja/repository/VendaRepository.java - Category Model
src/main/java/br/com/caiquedev/pdvloja/entity/Categoria.java - Customer Model
src/main/java/br/com/caiquedev/pdvloja/entity/Cliente.java - Inventory Model
src/main/java/br/com/caiquedev/pdvloja/entity/Estoque.java - Product Model
src/main/java/br/com/caiquedev/pdvloja/entity/Produto.java - Sale Model
src/main/java/br/com/caiquedev/pdvloja/entity/Venda.java
HATEOAS Responses
- Category Links
src/main/java/br/com/caiquedev/pdvloja/assembler/CategoriaModelAssembler.java - Customer Links
src/main/java/br/com/caiquedev/pdvloja/assembler/ClienteModelAssembler.java - Inventory Links
src/main/java/br/com/caiquedev/pdvloja/assembler/EstoqueModelAssembler.java - Product Links
src/main/java/br/com/caiquedev/pdvloja/assembler/ProdutoModelAssembler.java - Sales Links
src/main/java/br/com/caiquedev/pdvloja/assembler/VendaModelAssembler.java
Other components
- API Consumer
Connections 34
- API Consumer → Category Endpoints: calls endpoints
README.md - API Consumer → Customer Endpoints: calls endpoints
README.md - API Consumer → Inventory Endpoints: calls endpoints
README.md - API Consumer → Product Endpoints: calls endpoints
README.md - API Consumer → Sales Endpoints: calls endpoints
README.md - Category Endpoints → Category Service: delegates operations
src/main/java/br/com/caiquedev/pdvloja/controller/CategoriaController.java - Customer Endpoints → Customer Service: delegates operations
src/main/java/br/com/caiquedev/pdvloja/controller/ClienteController.java - Inventory Endpoints → Inventory Service: delegates operations
src/main/java/br/com/caiquedev/pdvloja/controller/EstoqueController.java - Product Endpoints → Product Service: delegates operations
src/main/java/br/com/caiquedev/pdvloja/controller/ProdutoController.java - Sales Endpoints → Sales Service: delegates operations
src/main/java/br/com/caiquedev/pdvloja/controller/VendaController.java - Category Service → Category Repository: reads and writes
src/main/java/br/com/caiquedev/pdvloja/service/CategoriaService.java - Customer Service → Customer Repository: reads and writes
src/main/java/br/com/caiquedev/pdvloja/service/ClienteService.java - Inventory Service → Inventory Repository: reads and writes
src/main/java/br/com/caiquedev/pdvloja/service/EstoqueService.java - Product Service → Product Repository: reads and writes
src/main/java/br/com/caiquedev/pdvloja/service/ProdutoService.java - Sales Service → Sales Repository: reads and writes
src/main/java/br/com/caiquedev/pdvloja/service/VendaService.java - Category Repository → Category Model: persists
src/main/java/br/com/caiquedev/pdvloja/repository/CategoriaRepository.java - Customer Repository → Customer Model: persists
src/main/java/br/com/caiquedev/pdvloja/repository/ClienteRepository.java - Inventory Repository → Inventory Model: persists
src/main/java/br/com/caiquedev/pdvloja/repository/EstoqueRepository.java - Product Repository → Product Model: persists
src/main/java/br/com/caiquedev/pdvloja/repository/ProdutoRepository.java - Sales Repository → Sale Model: persists
src/main/java/br/com/caiquedev/pdvloja/repository/VendaRepository.java - Category Endpoints → Category Links: assembles responses
src/main/java/br/com/caiquedev/pdvloja/controller/CategoriaController.java - Customer Endpoints → Customer Links: assembles responses
src/main/java/br/com/caiquedev/pdvloja/controller/ClienteController.java - Inventory Endpoints → Inventory Links: assembles responses
src/main/java/br/com/caiquedev/pdvloja/controller/EstoqueController.java - Product Endpoints → Product Links: assembles responses
src/main/java/br/com/caiquedev/pdvloja/controller/ProdutoController.java - Sales Endpoints → Sales Links: assembles responses
src/main/java/br/com/caiquedev/pdvloja/controller/VendaController.java - Category Links → Category Model: creates resource links
src/main/java/br/com/caiquedev/pdvloja/assembler/CategoriaModelAssembler.java - Customer Links → Customer Model: creates resource links
src/main/java/br/com/caiquedev/pdvloja/assembler/ClienteModelAssembler.java - Inventory Links → Inventory Model: creates resource links
src/main/java/br/com/caiquedev/pdvloja/assembler/EstoqueModelAssembler.java - Product Links → Product Model: creates resource links
src/main/java/br/com/caiquedev/pdvloja/assembler/ProdutoModelAssembler.java - Sales Links → Sale Model: creates resource links
src/main/java/br/com/caiquedev/pdvloja/assembler/VendaModelAssembler.java - Product Model → Category Model: references category
src/main/java/br/com/caiquedev/pdvloja/entity/Produto.java - Inventory Model → Product Model: references product
src/main/java/br/com/caiquedev/pdvloja/entity/Estoque.java - Sale Model → Customer Model: references customer
src/main/java/br/com/caiquedev/pdvloja/entity/Venda.java - Sale Model → Product Model: contains products
src/main/java/br/com/caiquedev/pdvloja/entity/Venda.java