shoc-backend/SeaHaven.Services/Implementation
Alexandre Brandizzi 5877f7817f fix(dashboard): bucket trend by calendar ScheduledDate (SH-350)
ScheduledDate is persisted as a midnight calendar value (board create writes
request.ScheduledDate.Value.Date; board patch writes the parsed .Date into a
datetime2 column with no offset). GetTrendAsync treated it as a UTC instant and
converted to America/New_York, so midnight became 19:00/20:00 the previous day
and every board-scheduled work order fell into the prior bucket: a job scheduled
today read as yesterday and overdue, and the Today bucket showed zero.

Bucket by DateOnly.FromDateTime(scheduled.Date) with no conversion, matching
DashboardMetrics and WorkOrderDerivedFields, so Trend and Stats agree on the
same rows. Rewrite the daily and yearly trend tests to assert calendar-date
classification (the removed conversion had encoded the shift into their
expectations) and add a regression test that a midnight-today work order stays
in the Today bucket and is not overdue.
2026-09-16 19:57:09 -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 fix(dashboard): bucket trend by calendar ScheduledDate (SH-350) 2026-09-16 19:57:09 -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 feat(locations): manage ordered site contacts 2026-09-15 19:03:54 -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 fix(vendors): enforce notes length limit 2026-08-20 18:17:48 -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 SH-281: group vendor directory by company (#115) 2026-09-15 16:02:44 -03:00
WorkOrderAccountResolver.cs feat(work-orders): stamp board create account from location 2026-08-26 09:12:48 -03:00
WorkOrderAdvancedSearchService.cs SH-338: filter unscheduled work orders before pagination (#116) 2026-09-15 16:46:40 -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 feat(work-orders): derive lifecycle on board create and schedule PATCH 2026-09-08 16:23:13 -03:00
WorkOrderBoardService.cs feat(work-orders): capture Site/Vendor/POC snapshot on Completed 2026-09-10 15:46:25 -03:00
WorkOrderBoardUpdateService.cs fix(work-orders): keep SH placeholder WO numbers and block downgrades (#123) 2026-09-16 15:01:10 -03:00
WorkOrderCommentService.cs fix(work-orders): block comment creation on canceled work orders 2026-08-24 09:59:13 -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 feat(work-orders): capture Site/Vendor/POC snapshot on Completed 2026-09-10 15:46:25 -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): address document review feedback 2026-09-09 17:09:26 -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 merge origin/feature/sh-196-wo-uplifts 2026-08-18 17:44:40 -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