feat(api): add staff order booking contract and shift timeline alias
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
Frontend should use this service as the single base URL:
|
||||
|
||||
- `https://krow-api-v2-933560802882.us-central1.run.app`
|
||||
- `https://krow-api-v2-e3g6witsvq-uc.a.run.app`
|
||||
|
||||
The gateway keeps backend services separate internally, but frontend should treat it as one API.
|
||||
|
||||
@@ -54,7 +54,8 @@ Full auth behavior, including staff phone flow and refresh rules, is documented
|
||||
- `GET /client/vendors/:vendorId/roles`
|
||||
- `GET /client/hubs/:hubId/managers`
|
||||
- `GET /client/team-members`
|
||||
- `GET /client/orders/view`
|
||||
- `GET /client/shifts/scheduled`
|
||||
- `GET /client/orders/view` deprecated compatibility alias
|
||||
- `GET /client/orders/:orderId/reorder-preview`
|
||||
- `GET /client/reports/summary`
|
||||
- `GET /client/reports/daily-ops`
|
||||
@@ -88,6 +89,12 @@ Full auth behavior, including staff phone flow and refresh rules, is documented
|
||||
- `POST /client/coverage/dispatch-teams/memberships`
|
||||
- `DELETE /client/coverage/dispatch-teams/memberships/:membershipId`
|
||||
|
||||
Timeline route naming:
|
||||
|
||||
- `GET /client/shifts/scheduled` is the canonical client timeline route
|
||||
- it returns shift-level scheduled items, not order headers
|
||||
- `GET /client/orders/view` still returns the same payload for compatibility, but now emits a deprecation header
|
||||
|
||||
Coverage-review request payload may also send:
|
||||
|
||||
```json
|
||||
@@ -176,6 +183,7 @@ The manager is created as an invited business membership. If `hubId` is present,
|
||||
- `GET /staff/payments/summary`
|
||||
- `GET /staff/payments/history`
|
||||
- `GET /staff/payments/chart`
|
||||
- `GET /staff/orders/available`
|
||||
- `GET /staff/shifts/assigned`
|
||||
- `GET /staff/shifts/open`
|
||||
- `GET /staff/shifts/pending`
|
||||
@@ -239,6 +247,14 @@ Example `GET /staff/profile/stats` response:
|
||||
}
|
||||
```
|
||||
|
||||
Order booking route notes:
|
||||
|
||||
- `GET /staff/orders/available` is the canonical order-level marketplace feed for recurring and grouped work
|
||||
- `GET /staff/shifts/open` remains available for shift-level opportunities and swap coverage
|
||||
- `POST /staff/orders/:orderId/book` books the future shifts of an order atomically for one role
|
||||
- the `roleId` returned by `GET /staff/orders/available` is the role catalog id for the order booking flow
|
||||
- the `roleId` returned by `GET /staff/shifts/open` is still the concrete `shift_roles.id` for shift-level apply
|
||||
|
||||
### Staff writes
|
||||
|
||||
- `POST /staff/profile/setup`
|
||||
@@ -249,6 +265,7 @@ Example `GET /staff/profile/stats` response:
|
||||
- `POST /staff/location-streams`
|
||||
- `PUT /staff/availability`
|
||||
- `POST /staff/availability/quick-set`
|
||||
- `POST /staff/orders/:orderId/book`
|
||||
- `POST /staff/shifts/:shiftId/apply`
|
||||
- `POST /staff/shifts/:shiftId/accept`
|
||||
- `POST /staff/shifts/:shiftId/decline`
|
||||
|
||||
Reference in New Issue
Block a user