feat: miler app contract gaps — stop type, COD, pre-pickup skip, profile
Close the gaps the miler-app dev flagged against the deployed contract. - GET /miler/bookings: return stoptype (pickup|delivery, from status), step + road-optimized sequence (cumulativekms/etaminutes/cumulativeeta), and codamount/paymentmode. List sorted by step, unsequenced last. Lookups batched to avoid N+1. - POST /miler/bookings/:bookingid/skip: pre-pickup skip that keeps the booking assigned and resumable — the "route back" the consignment-only delivery skip couldn't give a not-yet-picked-up booking. - GET /miler/earnings: add cancelled_stops + total_stops for success rate. - PUT /miler/profile: persist email (to appusers, 409 on unique clash) and a new nullable milerprofiles.address column. - POST /miler/assignments/:id/reject: accept reason from body OR ?reason=. Notifications read-state and bonuspoints deliberately left as-is — both need a product/business decision, not code. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -144,6 +144,9 @@ func RegisterRoutes(app *fiber.App, cfg *config.Config) {
|
||||
milerAuth.Post("/bookings/:bookingid/pickup-complete", controllers.BookingPickupComplete)
|
||||
milerAuth.Post("/bookings/:bookingid/vehicle-required", controllers.BookingVehicleRequiredEscalate)
|
||||
milerAuth.Post("/bookings/:bookingid/cancel", controllers.MilerCancelAssignment)
|
||||
// Pre-pickup skip: defer a not-yet-picked-up booking without releasing it,
|
||||
// so the rider can resume it (the consignment skip needs a consignment).
|
||||
milerAuth.Post("/bookings/:bookingid/skip", controllers.MilerSkipPickup)
|
||||
|
||||
// Redis periodic telemetry and status logs
|
||||
milerAuth.Post("/logs", controllers.CreateMilerPeriodicLog)
|
||||
|
||||
Reference in New Issue
Block a user