teecup/080_target_point_hazard_group.sql
Erol Haagenrud 84f11e1a45 Hull-diagram v2: kategoriske venstre/senter/høyre-akser (ADR-084)
Erstatter ADR-083 sin kontinuerlige crossMeters-forskyvning, som ga for
liten synlig venstre/høyre-forskjell på ekte banedata (Tjøme hull 18).
Baner velges nå kategorisk via side_fairway; green/tee/spiller alltid
på senterakse. Ny hazard_group-kolonne (migrasjon 080, ikke rullet ut
mot ekte DB ennå) lar to punkter eksplisitt pares til én carry-hindring
(forkant+bakkant) uten å risikere å slå sammen to atskilte hindringer
på samme side.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 23:36:28 +02:00

32 lines
1.8 KiB
SQL

-- =====================================================================
-- TeeCup — migrasjon 080
-- hazard_group: eksplisitt paring av forkant/bakkant til SAMME hindring
-- =====================================================================
-- Konkret anledning (ADR-084): hull-diagrammet for rangefinderen
-- (ADR-083) trengte en måte å vise ÉN hindring med både forkant- og
-- bakkant-avstand (f.eks. en bunker sin fremre og bakre kant), i
-- stedet for å vise hvert koordinatpunkt som sin egen markør. Første
-- forsøk grupperte punkter på `poi_type`+`side_fairway` -- avvist av
-- bruker: to ATSKILTE hindringer av samme type på samme side (f.eks.
-- to venstre fairway-bunkere) ville da feilaktig blitt slått sammen
-- til én.
--
-- Verken `golfapi_course_coordinate` eller `teeoff_course_coordinate`
-- hadde noen eksisterende gruppe-/hindrings-id å bruke i stedet --
-- `id`-kolonnen er en usorterbar `gen_random_uuid()`, ingen
-- `created_at`, og verken GolfAPI sin kildedata eller den manuelle
-- feltbefarings-flyten (ADR-081) har noe naturlig gruppe-nøkkel.
--
-- `hazard_group` er derfor en NY, nullable, FRITT SATT tekstkolonne --
-- samme "menneskelig tolkning ved data-inntasting"-mønster som
-- `poi_type`/`location` allerede er. `NULL` (dagens tilstand for ALT
-- eksisterende data) = enkeltstående punkt, ALDRI slått sammen med
-- noe -- ingen regresjon. Ikke-null = et menneske har eksplisitt
-- bekreftet at to (eller flere) punkter er samme fysiske hindring.
-- Kun meningsfullt unikt INNENFOR ett hull, ikke globalt håndhevet.
-- =====================================================================
\set ON_ERROR_STOP on
ALTER TABLE golfapi_course_coordinate ADD COLUMN hazard_group text;
ALTER TABLE teeoff_course_coordinate ADD COLUMN hazard_group text;