How samuelrmagro/reservas-salas-api works
This is a Spring API for managing room reservations, rooms, and users. Clients submit CRUD, filtered-list, and reservation lifecycle requests through REST controllers; services validate domain rules, coordinate room/user eligibility and persistence, and return DTOs. Reservation creation and reactivation enforce scheduling constraints, while room and user records can be inactivated. The graph reflects explicit controller calls and source-index references; several implementation details, including the room repository and custom validator implementations, were not sampled, so their links are omitted.
Main entry points: ReservaService.java Reservation Rules · SalaService.java Room Management · UsuarioService.java User Management · ReservaController.java Reservation Endpoints
Components 23
REST API
- Reservation Endpoints
src/main/java/br/com/samuelmagro/reserva_salas_api/controller/ReservaController.java - Room Endpoints
src/main/java/br/com/samuelmagro/reserva_salas_api/controller/SalaController.java - User Endpoints
src/main/java/br/com/samuelmagro/reserva_salas_api/controller/UsuarioController.java - Error Responses
src/main/java/br/com/samuelmagro/reserva_salas_api/exception/GlobalExceptionHandler.java
Domain Services
- Reservation Rules
src/main/java/br/com/samuelmagro/reserva_salas_api/service/ReservaService.java - Room Management
src/main/java/br/com/samuelmagro/reserva_salas_api/service/SalaService.java - User Management
src/main/java/br/com/samuelmagro/reserva_salas_api/service/UsuarioService.java - Reservation Mapping
src/main/java/br/com/samuelmagro/reserva_salas_api/mapper/ReservaMapper.java - Room Mapping
src/main/java/br/com/samuelmagro/reserva_salas_api/mapper/SalaMapper.java - User Mapping
src/main/java/br/com/samuelmagro/reserva_salas_api/mapper/UsuarioMapper.java
Persistence
- Reservation Access
src/main/java/br/com/samuelmagro/reserva_salas_api/repository/ReservaRepository.java - Room Access
src/main/java/br/com/samuelmagro/reserva_salas_api/repository/SalaRepository.java - User Access
src/main/java/br/com/samuelmagro/reserva_salas_api/repository/UsuarioRepository.java - Reservation State
src/main/java/br/com/samuelmagro/reserva_salas_api/model/Reserva.java - Room State
src/main/java/br/com/samuelmagro/reserva_salas_api/model/Sala.java - User State
src/main/java/br/com/samuelmagro/reserva_salas_api/model/Usuario.java
Contracts And Validation
- Reservation DTOs
src/main/java/br/com/samuelmagro/reserva_salas_api/dto/reserva - Room DTOs
src/main/java/br/com/samuelmagro/reserva_salas_api/dto/sala - User DTOs
src/main/java/br/com/samuelmagro/reserva_salas_api/dto/usuario - Date Constraints
src/main/java/br/com/samuelmagro/reserva_salas_api/customValidation/anotacaoCustomizada - Date Validators
src/main/java/br/com/samuelmagro/reserva_salas_api/customValidation/validator - Error DTOs
src/main/java/br/com/samuelmagro/reserva_salas_api/dto/exception
Other components
- API Client
Connections 21
- API Client → Reservation Endpoints: sends requests
- API Client → Room Endpoints: sends requests
- API Client → User Endpoints: sends requests
- Reservation Endpoints → Reservation Rules: delegates to
src/main/java/br/com/samuelmagro/reserva_salas_api/controller/ReservaController.java - Room Endpoints → Room Management: delegates to
src/main/java/br/com/samuelmagro/reserva_salas_api/controller/SalaController.java - User Endpoints → User Management: delegates to
src/main/java/br/com/samuelmagro/reserva_salas_api/controller/UsuarioController.java - Reservation Rules → Reservation Access: queries and saves
src/main/java/br/com/samuelmagro/reserva_salas_api/service/ReservaService.java - Reservation Rules → Room Management: checks room
src/main/java/br/com/samuelmagro/reserva_salas_api/service/ReservaService.java - Reservation Rules → User Management: checks user
src/main/java/br/com/samuelmagro/reserva_salas_api/service/ReservaService.java - Reservation Rules → Reservation Mapping: maps results
src/main/java/br/com/samuelmagro/reserva_salas_api/service/ReservaService.java - Room Management → Room Access: queries and saves
src/main/java/br/com/samuelmagro/reserva_salas_api/service/SalaService.java - Room Management → Room Mapping: maps results
src/main/java/br/com/samuelmagro/reserva_salas_api/service/SalaService.java - User Management → User Access: queries and saves
src/main/java/br/com/samuelmagro/reserva_salas_api/service/UsuarioService.java - User Management → User Mapping: maps results
src/main/java/br/com/samuelmagro/reserva_salas_api/service/UsuarioService.java - Reservation Access → Reservation State: accesses entity
src/main/java/br/com/samuelmagro/reserva_salas_api/repository/ReservaRepository.java - User Access → User State: accesses entity
src/main/java/br/com/samuelmagro/reserva_salas_api/repository/UsuarioRepository.java - Reservation Rules → Reservation DTOs: uses requests
src/main/java/br/com/samuelmagro/reserva_salas_api/service/ReservaService.java - Room Management → Room DTOs: uses requests
src/main/java/br/com/samuelmagro/reserva_salas_api/service/SalaService.java - User Management → User DTOs: uses requests
src/main/java/br/com/samuelmagro/reserva_salas_api/service/UsuarioService.java - Date Constraints → Date Validators: registers validators
src/main/java/br/com/samuelmagro/reserva_salas_api/customValidation/anotacaoCustomizada/DataDentroIntervalo.java - Error Responses → Error DTOs: builds responses
src/main/java/br/com/samuelmagro/reserva_salas_api/exception/GlobalExceptionHandler.java