dev → uat: GRO-2187 portal pet PATCH + GET enrichment (carries GRO-2152) #166

Merged
Flea Flicker merged 3 commits from dev-to-uat-gro-2187 into uat 2026-06-08 10:02:17 +00:00
Member

Promotion: dev → uat

Promotes the current dev head to uat for QA. Two commits ride this train:

  1. GRO-2187 (primary) — implement PATCH /api/portal/pets/:petId + enrich GET /api/portal/pets. Fixes the UAT §5.23 regression under GRO-1480 (portal pet-save was 404 / no persistence). Merged to dev as #165.
  2. GRO-2152 (rides along) — route optimization schema migration, already merged to dev as #164. A linear dev→uat promotion necessarily carries it; flagging for visibility.

QA focus (GRO-2187)

After this deploys to UAT, re-run UAT_PLAYBOOK.md §4.8:

  • TC-API-8.12GET /api/portal/pets returns coatType, petSizeCategory, healthAlerts, preferredCuts, medicalAlerts.
  • TC-API-8.13 — owner PATCH /api/portal/pets/{petId} persists (200), web xlarge → DB extra_large; round-trip via GET.
  • TC-API-8.14 — non-owner PATCH → 403 (or 404 for unknown pet).
  • TC-API-8.15 — invalid coatType/petSizeCategory → 422.

This closes the API side of GRO-1480 §5.23.

CI

dev PR #165 was green on Lint & Typecheck, Test (582 passed), and Build & Push.

cc @cpfarhood

## Promotion: dev → uat Promotes the current `dev` head to `uat` for QA. Two commits ride this train: 1. **[GRO-2187](/GRO/issues/GRO-2187)** (primary) — implement `PATCH /api/portal/pets/:petId` + enrich `GET /api/portal/pets`. Fixes the UAT §5.23 regression under [GRO-1480](/GRO/issues/GRO-1480) (portal pet-save was 404 / no persistence). Merged to dev as #165. 2. **[GRO-2152](/GRO/issues/GRO-2152)** (rides along) — route optimization schema migration, already merged to dev as #164. A linear dev→uat promotion necessarily carries it; flagging for visibility. ## QA focus (GRO-2187) After this deploys to UAT, re-run **UAT_PLAYBOOK.md §4.8**: - **TC-API-8.12** — `GET /api/portal/pets` returns coatType, petSizeCategory, healthAlerts, preferredCuts, medicalAlerts. - **TC-API-8.13** — owner `PATCH /api/portal/pets/{petId}` persists (200), web `xlarge` → DB `extra_large`; round-trip via GET. - **TC-API-8.14** — non-owner PATCH → 403 (or 404 for unknown pet). - **TC-API-8.15** — invalid `coatType`/`petSizeCategory` → 422. This closes the API side of [GRO-1480](/GRO/issues/GRO-1480) §5.23. ## CI dev PR #165 was green on Lint & Typecheck, Test (582 passed), and Build & Push. cc @cpfarhood
Flea Flicker added 3 commits 2026-06-08 08:19:20 +00:00
feat(GRO-2152): route optimization schema migration
CI / Test (pull_request) Successful in 53s
CI / Lint & Typecheck (pull_request) Successful in 1m0s
CI / Build & Push Docker Images (pull_request) Successful in 4m13s
4884961c8e
Add the database foundation for mobile groomer route optimization:

- clients: latitude/longitude (double precision) + geocodedAt
- groomer_routes: per-(staff, date) route with route_status enum,
  totals, optimizedAt; UNIQUE(staff_id, route_date)
- route_stops: ordered stops FK->groomer_routes (cascade) + appointments,
  lat/lng, per-leg travel mins/distance, bufferMins;
  UNIQUE(route_id, appointment_id) and UNIQUE(route_id, stop_order)
- business_settings: defaultTravelBufferMins (default 15),
  routeOptimizationProvider (default nominatim), googleMapsApiKey
  (encrypted at rest at the app layer)
- Idempotent hand-authored migration 0041 + journal entry (when=max+1)

Lands in packages/db (the deployed schema/migration source per the
Dockerfile migrate stage); apps/api is the legacy CI-only copy.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Merge pull request 'feat(GRO-2152): route optimization schema migration' (#164) from feat/gro-2152-route-optimization-schema-dev into dev
CI / Test (push) Failing after 4s
CI / Lint & Typecheck (push) Successful in 15s
CI / Build & Push Docker Images (push) Has been skipped
40bd6dcfea
fix(portal): implement PATCH /portal/pets/:petId + enrich GET (GRO-2187) (#165)
CI / Test (push) Failing after 3s
CI / Lint & Typecheck (push) Successful in 16s
CI / Build & Push Docker Images (push) Has been skipped
CI / Test (pull_request) Successful in 12s
CI / Lint & Typecheck (pull_request) Successful in 15s
CI / Build & Push Docker Images (pull_request) Successful in 41s
6be78cae35
Lint Roller approved these changes 2026-06-08 08:23:57 +00:00
Lint Roller left a comment
Member

QA LGTM — all 7 unit tests pass, CI green (Lint+Typecheck, Test, Build). PATCH ownership enforcement correct (403/404), payload mapping verified (weightKg wins, xlarge→extra_large, column aliases). 422 in-handler enum validation. GET enrichment complete. UAT_PLAYBOOK §4.8 TC-API-8.12–8.15 added. Approved for uat merge.

QA LGTM — all 7 unit tests pass, CI green (Lint+Typecheck, Test, Build). PATCH ownership enforcement correct (403/404), payload mapping verified (weightKg wins, xlarge→extra_large, column aliases). 422 in-handler enum validation. GET enrichment complete. UAT_PLAYBOOK §4.8 TC-API-8.12–8.15 added. Approved for uat merge.
Flea Flicker merged commit b3db206588 into uat 2026-06-08 10:02:17 +00:00
Sign in to join this conversation.