shoc-backend/SeaHaven.Services/Implementation
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
..
AccountService.cs backend changes 2026-05-14 11:00:12 -05:00
AssetService.cs backend changes 2026-05-14 11:00:12 -05:00
AuthenticationService.cs !fix(work-orders): fail-closed media account scope with org_scope claim [SH-221] 2026-08-06 10:26:04 -03:00
CalendarService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
CommonService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
ContactService.cs backend changes 2026-05-14 11:00:12 -05:00
DashboardService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
DispatchService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
DropdownOptionsService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
EmployeeService.cs backend changes 2026-05-14 11:00:12 -05:00
FollowUpService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
LocationService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
PastDueCacheService.cs feat(work-orders): add Phase 5 scheduled domain events (WeekRolled) 2026-07-24 10:13:17 -03:00
PMScheduleService.cs backend changes 2026-05-14 11:00:12 -05:00
QuotesService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
SettingsService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
SyncFieldMergePolicy.cs fix(work-orders): lock ScheduledStart/End when patching apptTime 2026-07-21 09:31:27 -03:00
SyncService.cs fix(work-orders): apply account scope across create and reads [SH-221] 2026-08-11 10:45:37 -03:00
TaskListTemplateService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
UpliftLifecycleService.cs feat(uplifts): complete SH-101 approval lifecycle 2026-08-11 08:58:19 -03:00
UpliftNotificationMessage.cs feat(uplifts): complete SH-101 approval lifecycle 2026-08-11 08:58:19 -03:00
UpliftService.cs feat(uplifts): complete SH-101 approval lifecycle 2026-08-11 08:58:19 -03:00
UpliftStatus.cs feat(work-orders): WO-scoped uplift endpoints and board summary (SH-196) 2026-08-13 14:49:56 -03:00
UserService.cs !fix(users): restrict DeleteUser to Admin [SH-221] 2026-08-11 09:44:52 -03:00
VendorCompanyRosterService.cs feat(vendors): add company roster management (SH-198) (#48) 2026-08-03 17:53:24 -03:00
VendorOperationsService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
VendorPortalService.cs feat(uplifts): complete SH-101 approval lifecycle 2026-08-11 08:58:19 -03:00
VendorPortalTokenService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
VendorService.cs feat(vendors): add company roster management (SH-198) (#48) 2026-08-03 17:53:24 -03:00
WorkOrderAccountResolver.cs fix(work-orders): apply account scope across create and reads [SH-221] 2026-08-11 10:45:37 -03:00
WorkOrderAdvancedSearchService.cs fix(work-orders): apply account scope across create and reads [SH-221] 2026-08-11 10:45:37 -03:00
WorkOrderAuditService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
WorkOrderBoardCancelService.cs fix(work-orders): symmetric NTE release, terminal guard, serialized cancel (SH-196) 2026-08-18 17:41:14 -03:00
WorkOrderBoardCreateService.cs fix(work-orders): apply account scope across create and reads [SH-221] 2026-08-11 10:45:37 -03:00
WorkOrderBoardService.cs feat(work-orders): WO-scoped uplift endpoints and board summary (SH-196) 2026-08-13 14:49:56 -03:00
WorkOrderBoardUpdateService.cs feat(work-orders): board completedDate + media categorize contract 2026-08-04 11:08:18 -03:00
WorkOrderCommentService.cs fix(work-orders): scope comments and completion-doc by account [SH-221] 2026-08-11 14:52:02 -03:00
WorkOrderCompletionService.cs fix(work-orders): scope comments and completion-doc by account [SH-221] 2026-08-11 14:52:02 -03:00
WorkOrderDetailService.cs fix(work-orders): serialize uplift create and atomic cancel (SH-196) 2026-08-18 10:20:05 -03:00
WorkOrderDispatchService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
WorkOrderFieldLockService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
WorkOrderIngestService.cs fix(work-orders): apply account scope across create and reads [SH-221] 2026-08-11 10:45:37 -03:00
WorkOrderMediaService.cs !fix(work-orders): fail-closed media account scope with org_scope claim [SH-221] 2026-08-06 10:26:04 -03:00
WorkOrderOpsHealthService.cs refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
WorkOrderReconciliationService.cs fix(work-orders): satisfy producer contract review 2026-07-27 16:33:06 -03:00
WorkOrderService.cs fix(work-orders): scope legacy GET GetComments by account [SH-221] 2026-08-11 15:18:29 -03:00
WorkOrderUpliftService.cs fix(work-orders): symmetric NTE release, terminal guard, serialized cancel (SH-196) 2026-08-18 17:41:14 -03:00
WorkOrderWebhookService.cs fix(work-orders): apply account scope across create and reads [SH-221] 2026-08-11 10:45:37 -03:00
WorkOrderWeekRolledService.cs fix(work-orders): process all WeekRolled candidates across batches 2026-07-24 10:13:17 -03:00