feat(api): complete M5 swap and dispatch backend slice
This commit is contained in:
@@ -80,8 +80,15 @@ Token refresh:
|
||||
- `GET /client/coverage/core-team?date=YYYY-MM-DD`
|
||||
- `GET /client/coverage/incidents?startDate=YYYY-MM-DD&endDate=YYYY-MM-DD`
|
||||
- `GET /client/coverage/blocked-staff`
|
||||
- `GET /client/coverage/swap-requests?status=OPEN`
|
||||
- `GET /client/coverage/dispatch-teams`
|
||||
- `GET /client/coverage/dispatch-candidates?shiftId=uuid&roleId=uuid`
|
||||
- `POST /client/coverage/reviews`
|
||||
- `POST /client/coverage/late-workers/:assignmentId/cancel`
|
||||
- `POST /client/coverage/swap-requests/:swapRequestId/resolve`
|
||||
- `POST /client/coverage/swap-requests/:swapRequestId/cancel`
|
||||
- `POST /client/coverage/dispatch-teams/memberships`
|
||||
- `DELETE /client/coverage/dispatch-teams/memberships/:membershipId`
|
||||
|
||||
Use `POST /client/coverage/reviews` when the business is rating a worker after coverage review.
|
||||
|
||||
@@ -98,6 +105,19 @@ Payload may include:
|
||||
|
||||
If `markAsBlocked` is `true`, backend blocks that worker for that business and rejects future apply or assign attempts until a later review sets `markAsBlocked: false`.
|
||||
|
||||
Swap-management rule:
|
||||
|
||||
- use `GET /client/coverage/swap-requests` as the client review feed
|
||||
- use `GET /client/coverage/dispatch-candidates` for the ranked replacement list
|
||||
- use `POST /client/coverage/swap-requests/:swapRequestId/resolve` when ops selects a replacement
|
||||
- use `POST /client/coverage/swap-requests/:swapRequestId/cancel` when ops wants to close the swap request without replacement
|
||||
|
||||
Dispatch-priority rule:
|
||||
|
||||
1. `CORE`
|
||||
2. `CERTIFIED_LOCATION`
|
||||
3. `MARKETPLACE`
|
||||
|
||||
### Orders
|
||||
|
||||
- `GET /client/orders/view`
|
||||
@@ -178,10 +198,8 @@ Current swap behavior:
|
||||
- backend records the swap request
|
||||
- assignment moves to `SWAP_REQUESTED`
|
||||
- shift becomes visible in the replacement pool
|
||||
|
||||
Current limitation:
|
||||
|
||||
- full manager-side swap resolution lifecycle is not yet a separate frontend contract
|
||||
- client/ops can review and resolve swap requests through the coverage endpoints
|
||||
- if the swap request expires without coverage, backend auto-cancels it and alerts both the manager path and the original worker
|
||||
|
||||
### Clock in / clock out
|
||||
|
||||
|
||||
Reference in New Issue
Block a user