shoc-backend/SeaHaven.Services
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
..
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(dashboard): add trend metrics (SH-350) 2026-09-16 18:42:26 -03:00
Exceptions feat(work-orders): isolate phase 2 inline edit with optimistic concurrency 2026-07-07 11:26:13 -03:00
Helpers feat(dashboard): add regional work order metrics (SH-348) 2026-09-16 18:03:38 -03:00
Implementation fix(dashboard): bucket trend by calendar ScheduledDate (SH-350) 2026-09-16 19:57:09 -03:00
Interfaces feat(dashboard): add trend metrics (SH-350) 2026-09-16 18:42:26 -03:00
Validation feat(locations): manage ordered site contacts 2026-09-15 19:03:54 -03:00
SeaHaven.Services.csproj refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00