How leoo-deb/simplified-inventory-management-api works
This is a Spring REST inventory-management API. Users submit category, product, variant, and stock-movement requests; controllers delegate to services that apply domain rules, map DTOs, and access persistence. Variant image operations additionally use S3. The README documents advanced product and movement filters, pagination, standardized responses, and global error handling. The graph reflects sampled service/controller code and documented capabilities; unsampled controller and repository wiring is not expanded beyond those documented layer relationships.
Main entry points: ProductVariantService.java Variant Rules · ProductService.java Product Rules · MovementService.java Movement Rules · CategoryService.java Category Rules
Components 20
API Layer
- Category API
src/main/java/com/leo/estoque_api/controller/CategoryController.java - Product API
src/main/java/com/leo/estoque_api/controller/ProductController.java - Variant API
src/main/java/com/leo/estoque_api/controller/ProductVariantController.java - Movement API
src/main/java/com/leo/estoque_api/controller/MovementController.java
Catalog Management
- Category Rules
src/main/java/com/leo/estoque_api/service/CategoryService.java - Product Rules
src/main/java/com/leo/estoque_api/service/ProductService.java - Variant Rules
src/main/java/com/leo/estoque_api/service/ProductVariantService.java - Category Mapper
src/main/java/com/leo/estoque_api/dto/category/CategoryMapper.java - Product Mapper
src/main/java/com/leo/estoque_api/dto/product/ProductMapper.java - Variant Mapper
src/main/java/com/leo/estoque_api/dto/productvariant/ProductVariantMapper.java
Stock Tracking
- Movement Rules
src/main/java/com/leo/estoque_api/service/MovementService.java - Movement Mapper
src/main/java/com/leo/estoque_api/dto/movement/MovementMapper.java
Persistence and Integrations
- Category Repository
src/main/java/com/leo/estoque_api/repository/CategoryRepository.java - Product Repository
src/main/java/com/leo/estoque_api/repository/ProductRepository.java - Variant Repository
src/main/java/com/leo/estoque_api/repository/ProductVariantRepository.java - Movement Repository
src/main/java/com/leo/estoque_api/repository/MovementRepository.java - Inventory Database
- S3 Storage Service
src/main/java/com/leo/estoque_api/infra/storage/StorageS3Service.java - Amazon S3
Other components
- API User
Connections 25
- API User → Category API: sends category requests
- API User → Product API: sends product requests
- API User → Variant API: sends variant requests
- API User → Movement API: sends movement requests
- Category API → Category Rules: delegates operations
- Product API → Product Rules: delegates operations
- Variant API → Variant Rules: delegates operations
- Movement API → Movement Rules: delegates operations
- Category Rules → Category Mapper: maps entities
- Product Rules → Product Mapper: maps entities
- Variant Rules → Variant Mapper: maps entities
- Movement Rules → Movement Mapper: maps movements
- Category Rules → Category Repository: reads and writes
- Product Rules → Product Repository: reads and writes
- Product Rules → Category Repository: loads category
- Variant Rules → Product Repository: loads parent product
- Variant Rules → Variant Repository: reads and writes
- Movement Rules → Variant Repository: loads variant
- Movement Rules → Movement Repository: queries and records
- Category Repository → Inventory Database: persists categories
- Product Repository → Inventory Database: persists products
- Variant Repository → Inventory Database: persists variants
- Movement Repository → Inventory Database: persists movements
- Variant Rules → S3 Storage Service: uploads or removes images
- S3 Storage Service → Amazon S3: stores image objects