feat: Implement Phase 8 Delivery and Rider Management
CI / test (push) Successful in 10m26s

- Introduced new Delivery and Rider API documentation.
- Added new models for RiderProfile, Shipment, ShipmentItem, ShipmentAssignment, ShipmentEvent, and ShipmentProof.
- Developed controllers for admin and rider logistics, including shipment management and rider actions.
- Created services for handling shipment creation, assignment, and state transitions.
- Implemented validation schemas for shipment and rider operations.
- Added new routes for admin and rider logistics, including tracking endpoints.
- Established a state machine for shipment status transitions.
- Created migration scripts for new database tables and relationships.
- Added unit tests for shipment state transitions and validation security.
This commit is contained in:
Sathira Sri Sathara
2026-09-09 12:55:32 +05:30
parent cd2c1c6d08
commit 222483d194
24 changed files with 168 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
const state=require("../../app/services/logistics/shipmentState.service");describe("Phase 8 shipment state machine",()=>{test.each([["PENDING","READY_FOR_ASSIGNMENT"],["READY_FOR_ASSIGNMENT","ASSIGNED"],["ASSIGNED","PICKUP_PENDING"],["PICKUP_PENDING","PICKED_UP"],["PICKED_UP","IN_TRANSIT"],["IN_TRANSIT","OUT_FOR_DELIVERY"],["OUT_FOR_DELIVERY","DELIVERED"],["OUT_FOR_DELIVERY","DELIVERY_FAILED"],["DELIVERY_FAILED","RESCHEDULED"]])("allows %s -> %s",(a,b)=>expect(state.canTransition(a,b)).toBe(true));test.each([["DELIVERED","PICKED_UP"],["CANCELLED","DELIVERED"],["PENDING","DELIVERED"]])("rejects %s -> %s",(a,b)=>expect(()=>state.assertTransition(a,b)).toThrow(/Illegal shipment transition/));});