[MR Train 3/6] Refactor: Add service layer business logic
MR Train Overview
This is MR 3 of 6 in a stacked MR train to refactor orders-service.
Train Structure
- [MR 1/6] Foundation (!2 (merged))
- [MR 2/6] Database layer (!3 (merged))
- [MR 3/6] Service layer ← YOU ARE HERE
- [MR 4/6] API endpoints (depends on MR 3)
- [MR 5/6] Integration tests (depends on MR 4)
- [MR 6/6] Performance optimizations (depends on MR 5)
This MR: Service Layer
Implements the business logic layer with order management functionality.
Changes
- Created OrderService with CRUD operations
- Implemented order state machine (PENDING → CONFIRMED → PROCESSING → SHIPPED → DELIVERED)
- Added OrderValidationService for request validation
- Created OrderEventPublisher for event-driven architecture
- Added @Transactional annotations for proper transaction boundaries
Business Rules Implemented
- Orders start in PENDING status
- Cannot confirm non-PENDING orders
- Cannot cancel DELIVERED orders
- All state transitions publish events
Dependencies
This MR is based on the refactor/step2-database branch.
Next Steps
MR 4 will add REST API endpoints that use this service layer.
@sabrina_farmer @bill_staples Please review the business logic!