Pending BE contract (WO design parity gaps)
Local checklist for FE branches off dev. Confirm with backend before shipping PR3/PR5 to production. Until confirmed, FE may use typed clients + mocks.
Board row / PATCH
| Field |
Needed by |
Notes |
completedDate on GET /board and /board/search rows |
PR1, PR4 |
PATCH field: "completedDate" expected; confirm GET includes ISO date |
severity (1–5 | null) on row, create, PATCH |
PR2, PR5 |
Required for Emergency/Reactive; PATCH field: "severity" |
upliftSummary on row |
PR3, PR4, PR5 |
{ hasUplift, pendingCount, primaryStatus? } |
hasPendingUplift on row/detail |
PR4 |
Prefer server 422 on Completed / completion-doc when pending |
additionalContacts[] |
PR6 |
{ name, phone, notes? }[] on create/detail/PATCH |
isAddOn |
PR5 (filter) |
Indicator, not a WO type (SH-126) |
Proposed WO-scoped uplift endpoints (confirm vs NTE uplifts queue)
| Method |
Path |
Body |
| GET |
workorders/{id}/uplifts |
— |
| POST |
workorders/{id}/uplifts |
{ amount, notes, attachments? } |
| POST |
workorders/{id}/uplifts/{upliftId}/cancel |
— |
| POST |
workorders/{id}/uplifts/{upliftId}/revoke |
{ reason? } |
Statuses (design): pending | approved | auto_approved | rejected | cancelled | revoked.
Search query params (GET workorders/board/search)
| Param |
Meaning |
severities |
multi 1–5 |
rescheduled / carriedOver |
boolean (≥2 counters) |
addOn |
boolean (isAddOn) |
flagColors |
multi #RRGGBB |
internalOnly |
WO# starts with SH |
avetaOnly |
if avetaRequired exists |
hasUplift + upliftStatuses |
uplift filters |
Already documented in board-search-api.md: datePreset, sites, types, overdue, dispatchers, statuses, pmTypes, vendorIds, docStatuses.
| Field |
Needed by |
POST { text, mentions?: string[] } |
PR9 |
| Response includes mentions for highlight |
PR9 |
Vendor
| Item |
Needed by |
| Create technician under company (confirm existing vendors API) |
PR7 |
Optional
| Item |
Needed by |
| 422 on duplicate WO number (global) |
PR8 (FE dialog works without it) |