Alexandre Brandizzi
917bad3ee1
Merge pull request #16 from Sea-Haven-Industries/feat/work-orders-phase-4
...
Feat/work orders phase 4
2026-07-24 13:41:14 -03:00
Alexandre Brandizzi
a9dee0bb84
merge: integrate origin/dev into work-orders-phase-4
...
Merge origin/dev (vendor roadmap PRs #28/#29, phases 1-3 PRs #13-15)
into work-orders-phase-4. Conflict in WorkOrderController.cs resolved by
keeping both the Phase 4 board/search endpoint and the dev-side XML doc
comment on GetDispatcherLookups (both additions at the same site).
Migration timestamps remain monotonic and non-overlapping. Phase 4 global
advanced search, search index migrations, and the cross-platform LocalDB
test guard are preserved alongside the merged vendor roadmap and phases 1-3.
Validation (Docker .NET 8 SDK): build 0 errors; 191 tests pass across
all three test projects (64 + 18 + 109).
2026-07-24 13:38:20 -03:00
Alexandre Brandizzi
8192da7790
Merge pull request #15 from Sea-Haven-Industries/feat/work-orders-phase-3
...
Feat/work orders Phase 3 board create and soft cancel
2026-07-24 13:34:39 -03:00
Alexandre Brandizzi
df828cf48c
Merge pull request #14 from Sea-Haven-Industries/feat/work-orders-phase-2
...
Feat/work orders phase 2
2026-07-24 13:32:25 -03:00
Alexandre Brandizzi
3bd0268129
Merge pull request #13 from Sea-Haven-Industries/feat/work-orders-phase-1-board
...
Feat/work orders phase 1 board
2026-07-24 13:29:09 -03:00
Alexandre Brandizzi
782d0e8ae9
Merge pull request #29 from Sea-Haven-Industries/codex/vendor-roadmap-completion-backend
...
Complete vendor operations roadmap backend
2026-07-24 13:24:22 -03:00
Alexandre Brandizzi
af724ff625
fix(test): guard LocalDB migration check by platform
2026-07-24 13:10:50 -03:00
Alexandre Brandizzi
b1421de0b5
fix(vendors): address roadmap review findings
2026-07-24 11:49:57 -03:00
Arthur Bassi
bdd566de83
fix(work-orders): bound SiteCode/InternalWONumber so Phase4 indexes apply on SQL Server
2026-07-24 10:02:57 -03:00
Arthur Bassi
31675e49dd
fix(work-orders): make Phase4 search index migration discoverable by EF
2026-07-24 10:01:11 -03:00
Arthur Bassi
edcdc10395
fix(work-orders): return 400 for invalid advanced-search custom date range
...
Map ArgumentException from datePreset=custom without dates to BadRequest so the endpoint matches the Phase 4 contract.
2026-07-24 10:01:11 -03:00
Arthur Bassi
54cd24acf4
fix(migrations): shrink SiteCode and InternalWONumber before Phase4 search indexes
...
SQL Server cannot index nvarchar(max). Alter columns to nvarchar(450)
before creating Phase 4 search indexes.
2026-07-24 09:59:24 -03:00
Arthur Bassi
11fed06f03
feat(work-orders): add Phase 4 board search and advanced search API
...
Harden contextual search on the weekly board and expose paginated cross-week GET /board/search with date presets, FE filter params, SQL indexes, and unit tests.
2026-07-24 09:58:39 -03:00
Alexandre Brandizzi
4b4ab04615
Merge pull request #28 from Sea-Haven-Industries/codex/vendor-core-completion-backend
...
Complete core vendor workflows
2026-07-23 19:46:01 -03:00
Alexandre Brandizzi
39829f7274
Merge branch 'codex/vendor-core-completion-backend' into codex/vendor-roadmap-completion-backend
2026-07-23 19:18:19 -03:00
Alexandre Brandizzi
4863d1fdaf
feat(vendors): complete operations roadmap backend
2026-07-23 19:18:06 -03:00
Alexandre Brandizzi
5b4b538c16
fix(vendors): preserve company and phone integrity
2026-07-23 19:17:14 -03:00
Alexandre Brandizzi
8cf49afc2c
feat(vendors): complete core vendor workflows
2026-07-23 17:02:40 -03:00
Arthur Bassi
385812c5c3
merge: sync phase 3 with updated phase 2 base
...
Reconcile migration/docs deletions from phase 2, adopt async audit staging and ApptTime lock contracts, and keep phase 3 create/cancel transactional behavior.
2026-07-23 13:28:54 -03:00
Alexandre Brandizzi
1162c68596
feat(vendors): add directory filters and details API ( #25 )
...
* feat(vendors): add directory filters and details API
* fix(vendors): preserve omitted status
* fix(vendors): align facet filtering
* fix(vendors): address directory review findings
2026-07-23 15:55:47 +00:00
Alexandre Brandizzi
1ff29c234e
Merge branch 'dev' into feat/work-orders-phase-1-board
2026-07-21 14:01:48 -03:00
Alexandre Brandizzi
32b9113057
Merge pull request #10 from Sea-Haven-Industries/feat/work-orders-domain-foundation
...
feat(work-orders): Phase 0 domain foundation with FE alignment
2026-07-21 13:58:18 -03:00
Arthur Bassi
75969a1e3d
docs(work-orders): clarify board filter precedence and dispatcher lookup
...
Document myWorkOrders overriding dispatchers, weekend dayGroup null contract, and that dispatcher lookups currently return all users. Map service ArgumentException to 400 for consistency.
2026-07-21 09:33:24 -03:00
Arthur Bassi
61b4c84337
fix(work-orders): lock ScheduledStart/End when patching apptTime
...
Align board apptTime field locks with SyncFieldMergePolicy field names so sync cannot overwrite a manual appointment edit. Also add shared LifecycleStatusSets so the Phase 2 branch compiles.
2026-07-21 09:31:27 -03:00
Arthur Bassi
f3d2a5cfe7
fix(work-orders): address PR13 phase-1 review feedback
2026-07-17 14:51:56 -03:00
Arthur Bassi
76db2b5a37
fix(work-orders): address PR14 phase-2 review feedback
2026-07-17 14:48:48 -03:00
Arthur Bassi
4bd11dcf6b
fix(work-orders): address stacked PR review feedback
2026-07-17 14:31:08 -03:00
Arthur Bassi
ceeb0c8fa3
fix(work-orders): wrap board create in a transaction for atomic persistence
2026-07-10 11:38:58 -03:00
Arthur Bassi
3122cbc8f7
fix(migrations): remove undiscoverable WorkOrderType backfill migration
...
Superseded by Phase0 (WorkOrderType as int) and Phase1 board indexes; keeping the bare Migration would either be skipped by EF or conflict if metadata were added.
2026-07-10 11:28:55 -03:00
Arthur Bassi
bdfaf1ff61
fix(migrations): add Phase1 BoardIndexes Designer metadata for EF discovery
2026-07-10 11:27:43 -03:00
Arthur Bassi
cc8825ace0
fix(migrations): add Phase1 BoardIndexes Designer metadata for EF discovery
2026-07-10 11:20:14 -03:00
Arthur Bassi
9dc17d4255
fix(work-orders): persist WO identity before staging create audit and locks
2026-07-10 10:49:57 -03:00
Arthur Bassi
88f9245fbf
merge: sync Phase 1 board review fixes into Phase 2
...
Resolve conflicts in WorkOrderController and WorkOrderBoardService so Phase 2 merges cleanly into the Phase 1 base.
2026-07-10 10:41:36 -03:00
Arthur Bassi
25eb6293e0
chore: remove docs and scripts from phase 2 PR scope
2026-07-09 13:24:47 -03:00
Arthur Bassi
c2d0bd45e3
fix(work-orders): address PR #13 review feedback
...
Return BadRequest for invalid board week window, remove duplicate unused board types, fix POC null guard, and document appt precedence and UTC Phase 1 assumptions.
2026-07-09 10:06:36 -03:00
Arthur Bassi
88caede86a
fix(work-orders): address PR #14 board PATCH review feedback
...
Reuse field-lock DB checks during staged audits, defer dispatch creation to the final save, and return 404 for missing work orders.
2026-07-09 09:58:41 -03:00
Arthur Bassi
e5bda0714a
feat(work-orders): add Phase 3 board create and soft cancel API
...
Expose POST /api/workorders/board and POST /api/workorders/{id}/cancel for SHOC wizard/inline creation and soft cancel, with field locks, WO# normalization, and Admin-only hard delete.
2026-07-08 10:17:31 -03:00
Arthur Bassi
91122d753d
merge: integrate Phase 1 board API into Phase 2 branch
...
Combine the reviewed Phase 1 read-only board endpoints with Phase 2 inline edit and optimistic concurrency, resolving shared foundation conflicts while preserving both feature sets.
2026-07-07 13:59:22 -03:00
Arthur Bassi
673bc3b5a9
fix(work-orders): align phase 2 status/type contract to SHOC frontend
...
Expand LifecycleStatus (EnRoute, OnSite, Rescheduled, Pending, PendingQuote) and WorkOrderType (Reactive, AddOn) to match the frontend prototype. Add FE label round-trip via LifecycleStatusMapper/WorkOrderTypeMapper, update derived fields, mutation rules and board unscheduled filter, and reactivate [Authorize] on WorkOrderController. Fix pre-existing dayGroup test expectation.
2026-07-07 13:11:22 -03:00
Arthur Bassi
d040832b87
feat(work-orders): isolate phase 2 inline edit with optimistic concurrency
...
Deliver PATCH board field updates and drop phases 3-7 code from the branch while keeping phase 0/1 dependencies required to build and test.
2026-07-07 11:26:13 -03:00
Arthur Bassi
8efe4460bb
fix(work-orders): complete Phase 1 board indexes, Service DTO and helper wiring
...
Add AssignTo+ScheduledDate and WorkOrderType indexes, expose service on board rows, and route data access through shared projection/filter helpers.
2026-07-07 10:11:04 -03:00
Arthur Bassi
ff53cb9fa6
feat(work-orders): add weekly board read API (Phase 1)
...
- GET /api/workorders/board with week window, Unscheduled section, and X of Y counts
- GET /api/workorders/lookups/dispatchers for SHOC filter avatars
- Board projection via WorkOrderBoardDataService with vendor/dispatch join and derived isPastDue
- Phase1_BoardIndexes migration (IX_workOrders_ScheduledDate)
- 5 board unit tests
2026-07-07 10:10:06 -03:00
Arthur Bassi
e5902e1df3
fix(work-orders): address PR review on sync, audit, lock and mapper
2026-07-02 09:30:05 -03:00
Arthur Bassi
76e839addf
test(work-orders): cover FE-aligned mappers and derived field logic
2026-07-02 09:19:28 -03:00
Arthur Bassi
187d935da2
feat(work-orders): add lifecycle, type mappers and derived field rules
2026-07-02 09:19:28 -03:00
Arthur Bassi
623810da45
feat(phase-0): finalize foundation — authorize, concurrency filter, isolated build
2026-07-02 09:19:28 -03:00
Arthur Bassi
7a81b6d279
test(work-orders): add Phase 0 domain unit tests
2026-07-02 09:19:28 -03:00
Arthur Bassi
49e5de5152
feat(work-orders): add audit, field lock and sync merge services
2026-07-02 09:17:59 -03:00
Arthur Bassi
e244c32bc9
feat(work-orders): add EF config and Phase 0 migration
2026-07-02 09:17:59 -03:00
Arthur Bassi
568961642f
feat(work-orders): add domain enums and aggregate root fields
2026-07-02 09:17:59 -03:00