Commit graph

334 commits

Author SHA1 Message Date
Arthur Bassi
5a70d5004e
Merge pull request #87 from Sea-Haven-Industries/feat/sh-221-location-owned-account
Some checks are pending
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
feat(work-orders): stamp board create account from location
2026-08-26 10:34:14 -03:00
Arthur Bassi
244a489fb2 fix(tests): create ephemeral LocalDB database before migration apply 2026-08-26 10:20:14 -03:00
Arthur Bassi
2e56ec7678 fix(work-orders): keep location account server-owned and forward create cancellation
Stop client writes from changing Locations.AccountId, make the SH-221 migration discoverable, and thread the board-create CancellationToken through lookup and persistence.
2026-08-26 10:00:02 -03:00
Arthur Bassi
61923b2a7d feat(work-orders): stamp board create account from location
Org-wide create no longer depends on customer name. POST /workorders/board requires locationId and stamps WorkOrder.AccountId from Location.AccountId.
2026-08-26 09:12:48 -03:00
Alexandre Brandizzi
5857f8483a
fix(vendors): complete directory contact fallbacks (#86)
Some checks are pending
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
* fix(vendors): complete directory contact fallbacks

* fix(vendors): normalize location labels

* fix(vendors): keep company location authoritative
2026-08-25 19:33:47 -04:00
Arthur Bassi
df01ded3ce
Merge pull request #80 from Sea-Haven-Industries/feat/sh-117-aveta-required
Some checks are pending
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
feat(work-orders): persist avetaRequired on board create, patch, and search
2026-08-25 18:13:26 -03:00
Arthur Bassi
14b85c64a8
Merge branch 'dev' into feat/sh-117-aveta-required 2026-08-25 17:19:30 -03:00
Arthur Bassi
238f8c8e60
Merge pull request #81 from Sea-Haven-Industries/feat/board-week-only-pagination
Some checks are pending
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
fix(work-orders): keep GET /board to scheduled-in-week rows only
2026-08-25 17:11:05 -03:00
Arthur Bassi
7c7c6bc525 feat(work-orders): persist Aveta Extra Docs media category
Round-trip category 5 on media POST/PATCH/GET and project hasAvetaDocument so pending vs attached survives reopen.
2026-08-25 15:10:45 -03:00
Arthur Bassi
7245897d56
Merge branch 'dev' into feat/sh-117-aveta-required 2026-08-25 12:12:07 -03:00
Arthur Bassi
3a7a1b1f09 docs(work-orders): drop ticket key from AvetaRequired xml comment 2026-08-25 12:03:19 -03:00
Arthur Bassi
12dc3d51d9
Merge branch 'dev' into feat/board-week-only-pagination 2026-08-25 12:01:19 -03:00
Alexandre Brandizzi
8e749047a3
Merge pull request #78 from Sea-Haven-Industries/fix/ab/sh-261-vendor-list-contact
Some checks are pending
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
[SH-261] Show vendor list location and email
2026-08-25 11:58:22 -03:00
Arthur Bassi
437a8dae5b
Merge branch 'dev' into feat/board-week-only-pagination 2026-08-25 11:54:57 -03:00
Alexandre Brandizzi
5343931a62
Merge branch 'dev' into fix/ab/sh-261-vendor-list-contact 2026-08-25 11:52:46 -03:00
Alexandre Brandizzi
abff9eeae8
Merge pull request #84 from Sea-Haven-Industries/chore/albrand/cdk-dependency-upgrades-20260825
chore(deps): upgrade AWS CDK library and CLI
2026-08-25 11:44:53 -03:00
Arthur Bassi
f17f8562e8 test(work-orders): cover unassigned inline board and global search 2026-08-25 11:15:35 -03:00
Alexandre Brandizzi
98eb546738 chore(deps): upgrade AWS CDK library and CLI 2026-08-25 05:38:14 -03:00
Arthur Bassi
04958e6121 fix(work-orders): keep GET /board to scheduled-in-week rows only (SH-165) 2026-08-24 18:29:18 -03:00
Arthur Bassi
15315edf08 feat(work-orders): persist avetaRequired on board create, patch, and search
Expose avetaRequired and originalDate on list rows so the frontend can round-trip the Aveta checkbox and Reschedule hover.
2026-08-24 15:14:31 -03:00
Arthur Bassi
424d0b88bc
Merge pull request #79 from Sea-Haven-Industries/feat/sh-115-completed-selective-lock
Some checks are pending
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
feat(work-orders): allow selective mutations on completed work orders
2026-08-24 10:23:33 -03:00
Arthur Bassi
4b8a08fb10 fix(work-orders): block comment creation on canceled work orders 2026-08-24 09:59:13 -03:00
Arthur Bassi
f47264ec4d feat(work-orders): allow selective mutations on completed work orders
Permit flagColor, comments, and Extra media after completion while keeping Canceled fully locked.
2026-08-24 09:31:30 -03:00
Alexandre Brandizzi
9c3da9b5e3 fix(vendors): keep location fallback atomic 2026-08-21 09:40:51 -03:00
Alexandre Brandizzi
d0a90483b3 fix(vendors): show canonical list contact data 2026-08-21 09:32:58 -03:00
Alexandre Brandizzi
7a33928779
Merge pull request #77 from Sea-Haven-Industries/fix/ab/sh-257-vendor-notes-limit
Some checks failed
Validate and deploy dev / Validate deployable source bundle (push) Has been cancelled
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Has been cancelled
fix(vendors): enforce 500-character notes limit (SH-257)
2026-08-20 20:06:11 -03:00
Alexandre Brandizzi
518d856334 fix(vendors): enforce notes length limit 2026-08-20 18:17:48 -03:00
Arthur Bassi
7350da3e2f
Merge pull request #76 from Sea-Haven-Industries/fix/sh-183-vendor-patch-new-dispatch
Some checks are pending
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
fix(work-orders): create new dispatch when assigning vendor after cancel or refuse
2026-08-20 15:34:08 -03:00
Arthur Bassi
c9c4d74194
Merge branch 'dev' into fix/sh-183-vendor-patch-new-dispatch 2026-08-20 15:28:16 -03:00
Arthur Bassi
14443aff18 fix(work-orders): audit and lock vendor when replacing an inactive primary
Creating a Pending dispatch now stages VendorId FieldChanged from the previous
assignment so field lock and concurrency checks run like a live vendor PATCH.
2026-08-20 15:09:34 -03:00
Alexandre Brandizzi
b69c2fe64e
Merge pull request #75 from Sea-Haven-Industries/fix/sh-252-provisional-wo-number
Some checks are pending
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
fix(work-orders): enforce provisional WO numbers (SH-252)
2026-08-20 14:48:23 -03:00
Arthur Bassi
af593fe2d2 fix(work-orders): create a new dispatch when patching vendor on an inactive primary
Cancelled, Canceled, and Refused primaries are not live company assignments.
VendorId PATCH now inserts a Pending dispatch instead of mutating the refused row.
2026-08-20 14:47:04 -03:00
Alexandre Brandizzi
d16afe3e0b fix(work-orders): enforce provisional WO numbers (SH-252) 2026-08-20 14:34:08 -03:00
Arthur Bassi
737c137a82
Merge pull request #74 from Sea-Haven-Industries/fix/sh-183-board-inactive-vendor
Some checks are pending
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
fix(work-orders): omit inactive primary vendor from board rows (SH-183)
2026-08-20 13:55:00 -03:00
Arthur Bassi
aa2c571d1e docs(work-orders): drop ticket key from primary dispatch status comment 2026-08-20 13:43:42 -03:00
Arthur Bassi
743841d93e fix(work-orders): map primary dispatch status on detail (SH-183) 2026-08-20 13:41:42 -03:00
Arthur Bassi
75d337df0f fix(work-orders): omit inactive primary vendor from board rows (SH-183)
Do not project VendorId/VendorName for Cancelled, Canceled, or Refused primary dispatches, and expose PrimaryDispatchStatus on the board DTO.
2026-08-20 13:22:12 -03:00
Alexandre Brandizzi
b02f0e4afd
Merge pull request #73 from Sea-Haven-Industries/fix/sh-247-canonical-trade-taxonomy
Some checks are pending
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
SH-247/SH-249: align vendor trades with confirmed taxonomy
2026-08-20 12:40:40 -03:00
Alexandre Brandizzi
0b246724d9 fix: align vendor trades with confirmed taxonomy 2026-08-20 11:44:07 -03:00
Alexandre Brandizzi
6eda0cd0f8
Merge pull request #72 from Sea-Haven-Industries/feat/sh-254-be-confirm-deactivation
Some checks are pending
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
feat(vendors): confirm-to-deactivate with open work orders (SH-254)
2026-08-20 11:06:24 -03:00
Alexandre Brandizzi
6fffc1b591
Merge branch 'dev' into feat/sh-254-be-confirm-deactivation 2026-08-20 10:58:23 -03:00
Alexandre Brandizzi
e9669a06b5
Merge pull request #70 from Sea-Haven-Industries/feat/sh-250-roster-additive-patch
Some checks are pending
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
feat(vendor-roster): additive PATCH endpoint for technician adds (SH-250, SH-246)
2026-08-19 14:55:08 -03:00
Alexandre Brandizzi
6c16ce7047 feat(vendors): record deactivations confirmed past open work orders
SH-44's user story is about not silently orphaning active work. The
confirmation dialog tells the operator, but nothing told the system, so
a deactivation that left work orders open was indistinguishable from one
that had none.

VendorService now takes an ILogger and writes a warning naming the
vendor, the user and the number of work orders left open whenever the
guard is cleared by confirmation. Both the update and delete paths are
covered; nothing is logged when there was nothing to leave open.
2026-08-19 13:48:30 -03:00
Alexandre Brandizzi
7a0856ddf7 feat(vendors): confirm-to-deactivate with open work orders (SH-254)
SH-44 and SH-82 both left "blocks, or requires explicit confirmation" to
be decided with the team, and the implementation took the blocking
branch. SH-254 settles it the other way: the approved design offers
"Deactivate anyway" beside the list of open work orders.

Deactivation with open work orders is now permitted, but only when the
caller says it has shown them: ConfirmOpenWorkOrders on the update DTO
and a confirmOpenWorkOrders query parameter on the delete route. Absent
the flag the existing guard still throws, so nothing deactivates by
accident and no caller loses the check by omission.

confirmOpenWorkOrders is a required parameter on DeleteVendorAsync
rather than an optional one, so every call site states its intent.
2026-08-19 13:31:16 -03:00
Alexandre Brandizzi
ec9b36ce29
Merge branch 'dev' into feat/sh-250-roster-additive-patch 2026-08-19 10:27:57 -03:00
Arthur Bassi
da21aa84b3
Merge pull request #66 from Sea-Haven-Industries/feature/sh-218-additional-contacts
Some checks are pending
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
feat(work-orders): persist additionalContacts on create, GET and PATCH (SH-218)
2026-08-18 21:01:16 -03:00
arthur.bassi
2222d04fcb Merge remote-tracking branch 'origin/dev' into feature/sh-218-additional-contacts 2026-08-18 20:52:34 -03:00
Arthur Bassi
986c314464
Merge pull request #64 from Sea-Haven-Industries/feature/sh-196-wo-uplifts
feat(work-orders): WO-scoped uplift endpoints and board summary (SH-196)
2026-08-18 20:51:00 -03:00
Alexandre Brandizzi
33d0b2cebf
Merge branch 'dev' into feat/sh-250-roster-additive-patch 2026-08-18 17:46:41 -03:00
Alexandre Brandizzi
5386d6129d
Merge branch 'dev' into feature/sh-196-wo-uplifts 2026-08-18 17:46:38 -03:00