shoc-backend/SeaHaven.Services
Alexandre Brandizzi 2327097d5e fix(work-orders): symmetric NTE release, terminal guard, serialized cancel (SH-196)
Three contract gaps found reviewing the frontend consumer:

- Revoking an auto-approved uplift never restored the dispatch NTE. Create
  raises NTE for both auto-approved and approved requests, but revoke restored
  it only for Approved, so the allowance was freed while the NTE stayed raised
  and every create -> auto-approve -> revoke cycle compounded the inflation.
  Revoke now compensates for NoApprovalRequired symmetrically.
- Revoke and cancel had no work-order lifecycle check, so a direct API call
  could still mutate uplifts on a Completed or Canceled work order; the board
  dialog's read-only state is UX only. Both now reject terminal work orders in
  the service.
- WorkOrderBoardCancelService read the pending-uplift list outside any gate, so
  an in-flight create could commit after that read and leave a pending uplift on
  a Canceled work order. The cancel flow now runs inside the same per-work-order
  gate as create, so the pending read, withdrawal and status audit serialize
  against it.
2026-08-18 17:41:14 -03:00
..
Configuration feat(uplifts): complete SH-101 approval lifecycle 2026-08-11 08:58:19 -03:00
Constants fix(work-orders): satisfy producer contract review 2026-07-27 16:33:06 -03:00
DependencyInjection fix(work-orders): satisfy producer contract review 2026-07-27 16:33:06 -03:00
DTOs feat(work-orders): WO-scoped uplift endpoints and board summary (SH-196) 2026-08-13 14:49:56 -03:00
Exceptions feat(work-orders): isolate phase 2 inline edit with optimistic concurrency 2026-07-07 11:26:13 -03:00
Helpers fix(work-orders): enforce SH-196 cumulative allowance and one pending per WO 2026-08-14 10:36:35 -03:00
Implementation fix(work-orders): symmetric NTE release, terminal guard, serialized cancel (SH-196) 2026-08-18 17:41:14 -03:00
Interfaces fix(work-orders): enforce SH-196 cumulative allowance and one pending per WO 2026-08-14 10:36:35 -03:00
Validation feat(vendors): add company roster management (SH-198) (#48) 2026-08-03 17:53:24 -03:00
SeaHaven.Services.csproj refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00