dev → uat: GRO-2154 geocoding endpoints (Phase 1.3) #171

Merged
Flea Flicker merged 2 commits from dev-to-uat-gro-2154 into uat 2026-06-08 12:06:44 +00:00
Member

dev → uat: GRO-2154 geocoding endpoints (Phase 1.3)

Promotes the GRO-2154 geocoding endpoints + auto-geocode work (merged to dev in #170) to uat.

What's included

  • POST /api/clients/:clientId/geocode — single client geocode (manager-only)
  • POST /api/clients/geocode-batch?limit= — throttled batch geocode of un-geocoded clients (manager-only), reports remaining
  • Auto-geocode on client create/update; clearing the address drops stale coordinates
  • Persists latitude/longitude/geocodedAt; structured outcomes (geocoded | no_address | unresolved | error)
  • UAT_PLAYBOOK.md §4.2 — new TC-API-2.7 … TC-API-2.17

Verification (on dev PR #170)

  • typecheck ✓ · lint ✓ (0 errors) · test ✓ (610 passed, 8 new) · CI green

QA focus

  • RBAC: geocode endpoints reject groomer/receptionist (403), allow manager
  • Single geocode outcomes: success persists coords; no_address/unresolved → 422; missing client → 404
  • Batch: respects ?limit, returns remaining; invalid limit → 400
  • Auto-geocode on create/update; address-clear resets coordinates

Refs GRO-2154.

🤖 Generated with Claude Code

## dev → uat: GRO-2154 geocoding endpoints (Phase 1.3) Promotes the GRO-2154 geocoding endpoints + auto-geocode work (merged to `dev` in #170) to `uat`. ### What's included - `POST /api/clients/:clientId/geocode` — single client geocode (manager-only) - `POST /api/clients/geocode-batch?limit=` — throttled batch geocode of un-geocoded clients (manager-only), reports `remaining` - Auto-geocode on client create/update; clearing the address drops stale coordinates - Persists `latitude`/`longitude`/`geocodedAt`; structured outcomes (`geocoded | no_address | unresolved | error`) - `UAT_PLAYBOOK.md` §4.2 — new **TC-API-2.7 … TC-API-2.17** ### Verification (on dev PR #170) - typecheck ✓ · lint ✓ (0 errors) · test ✓ (610 passed, 8 new) · CI green ### QA focus - RBAC: geocode endpoints reject groomer/receptionist (403), allow manager - Single geocode outcomes: success persists coords; no_address/unresolved → 422; missing client → 404 - Batch: respects `?limit`, returns `remaining`; invalid limit → 400 - Auto-geocode on create/update; address-clear resets coordinates Refs GRO-2154. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Flea Flicker added 2 commits 2026-06-08 11:45:52 +00:00
fix(ci): GRO-2197 api lint/typecheck/test run root scripts (de-false-green) (#169)
CI / Test (push) Successful in 25s
CI / Lint & Typecheck (push) Successful in 30s
CI / Build & Push Docker Images (push) Successful in 3m23s
eec198a661
feat(GRO-2154): geocoding endpoints + auto-geocode on client mutations (#170)
CI / Test (push) Successful in 28s
CI / Test (pull_request) Successful in 23s
CI / Lint & Typecheck (pull_request) Successful in 26s
CI / Build & Push Docker Images (pull_request) Successful in 25s
CI / Lint & Typecheck (push) Failing after 14m33s
CI / Build & Push Docker Images (push) Has been skipped
582c376df9
Lint Roller approved these changes 2026-06-08 11:53:42 +00:00
Lint Roller left a comment
Member

QA review passed — geocoding endpoints look correct. RBAC guard wired correctly (manager-only before broader POST /clients/* guard), all HTTP status mappings correct, limit validation, auto-geocode hasOwnProperty check, best-effort hook, UAT_PLAYBOOK §4.2 updated TC-API-2.7..2.17. CI green (lint, typecheck, 610 tests). Approved — clear to self-merge dev→uat.

QA review passed — geocoding endpoints look correct. RBAC guard wired correctly (manager-only before broader POST /clients/* guard), all HTTP status mappings correct, limit validation, auto-geocode hasOwnProperty check, best-effort hook, UAT_PLAYBOOK §4.2 updated TC-API-2.7..2.17. CI green (lint, typecheck, 610 tests). Approved — clear to self-merge dev→uat.
Flea Flicker merged commit 8721f0b63c into uat 2026-06-08 12:06:44 +00:00
Sign in to join this conversation.