Noter plan for internasjonale baner (golfapi.io) i backlog/ADR-019

Ren dokumentasjonsrunde, ingen kode - fanger retningen fra brukerens
eksterne research (Gemini) om hvordan TeeCup kan støtte baner utenfor
Norge når/hvis produktet kommersialiseres. Golfapi.io valgt som
leverandør, anbefalt tilnærming er live API + egen caching (samme
import-ved-eksplisitt-valg-prinsipp som ADR-019 allerede etablerte for
teeoff), ikke det dyre CSV-databasekjøpet. Ingen ADR skrevet ennå -
bevisst utsatt til dette faktisk skal bygges.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Erol Haagenrud 2026-08-03 19:15:13 +02:00
parent 0e89546dc7
commit 83caddf193
2 changed files with 66 additions and 0 deletions

View file

@ -660,6 +660,13 @@ db/RLS-avhengighet — samme isolasjonsprinsipp som `handicap_engine.py`).
`POST .../courses/official-import`. Migrasjon `010_official_course_unique_
ref.sql`.
**Tillegg 2026-08-03 (research, ikke bygget):** samme import-ved-eksplisitt-
valg-prinsipp er identifisert som riktig mal for en fremtidig internasjonal
banekilde (golfapi.io, for baner utenfor Norge/`teeoff_db`s dekning) — en
tredje `course.source`-verdi + `app/golfapi_client.py` ved siden av
`app/teeoff_client.py`, ikke en ny arkitektur. Ingen ADR-runde startet ennå,
kun notert. Full detalj i FEATURE_BACKLOG.md, «Internasjonale baner».
---
## ADR-020 — Invitasjonskode (oppdagelse), matchledelse og projisert stilling

View file

@ -2130,6 +2130,65 @@ sammenslåing eller rekkefølge-endring i en senere runde.
---
### Internasjonale baner (utenfor Norge) — 📋 NOTERT, IKKE designet/bygget (research 2026-08-03)
Brukeren undersøkte (i en ekstern Gemini-samtale, ikke denne økten — notert
her for å fange retningen før den glemmes, samme rutine som Order of
Merit-notatet over) hvordan TeeCup kan støtte baner utenfor Norge, siden
`teeoff_db` (ADR-004/ADR-019) kun dekker norske baner. Ingen kode skrevet,
ingen ADR-runde startet ennå — dette er et fremtidig, ikke-akutt behov,
relevant når/hvis TeeCup faktisk kommersialiseres og får brukere utenfor
Norge (se `teecup.golf`-domeneplanen, kjøpt med sikte på at TeeCup etter
hvert flytter dit fra `teecup.teeoff.no`).
**Valgt dataleverandør: Golf API (golfapi.io)** — ~42 000 baner globalt,
tilbyr BÅDE et REST-API og en fullstendig CSV-database-eksport
(`clubs.csv`/`courses.csv`/`tees.csv`/`coordinates.csv`). Andre vurderte
og forkastet: iGolf (40 000+, men B2B/enterprise-dyrt), GolfCourseAPI
(~30 000, gratisnivå men mer begrenset), Golf Intelligence (fokusert på
simulatorer/3D, feil målgruppe).
**Anbefalt tilnærming: Live API + egen caching, IKKE CSV-database-kjøp
foreløpig.** Dette er strukturelt identisk med mønsteret ADR-019 allerede
etablerte for teeoff-import (`source='official'` + `external_course_ref`,
kopiér-ved-eksplisitt-valg i stedet for live oppslag ved hver bruk) — samme
"importer én gang, lagre lokalt, aldri avhengig av en ekstern tjenestes
oppetid ved handicap-beregning"-prinsipp, bare med en ny ekstern kilde i
tillegg til teeoff. Golfapi.io sin avtale tillater eksplisitt caching
("you can store/cache the fetched course data... no need to call the API
to fetch the same course multiple times") — så en tredje `course.source`-
verdi (f.eks. `'international'`, mønster fra `'official'`) med et eget
`app/golfapi_client.py` (samme isolasjonsprinsipp som `app/teeoff_client.py`)
er den naturlige videreføringen NÅR dette designes, ikke en ny arkitektur.
CSV-database-kjøpet (3 995-5 995 € for alle baner, avhengig av om
koordinater inkluderes) er en betydelig forhåndskostnad som er unødvendig
så lenge caching-tilnærmingen dekker behovet organisk (bruker søker opp en
bane → 1 API-kall → lagres lokalt for alltid).
**Prisplan hos golfapi.io** (hentet 2026-08-03, kan være utdatert ved
faktisk bygging — bekreft på nytt): API-kall/måned: 50→29€, 500→99€,
2000→199€, 4000→299€, ubegrenset→399€ (krever årsabonnement). Et
engangskjøp på 500 tidsubegrensede kall finnes for 199€ (ingen løpende
kostnad, egnet for en beta-fase med få brukere). 15 dagers gratis prøve.
CSV-eksport (hvis man likevel velger det senere): «All courses» 3 995€
uten koordinater/5 995€ med, «Europa»/«USA»/«Asia-Pacific+Africa» hver
1 995€/2 995€. CSV gir 6 måneders oppdateringstilgang, deretter 20% av
opprinnelig pris per år for videre oppdateringer.
**Bevisst utsatt, naturlig neste steg NÅR dette skal bygges:** en liten
ADR (samme mønster som ADR-019) som dekker (1) ny `course.source`-verdi +
migrasjon, (2) `app/golfapi_client.py` sitt kontraktsformat + enhets-
konvertering (advarsel fra research: amerikanske kilder returnerer ofte
yards, må konverteres til meter FØR lagring — `hole`/`tee_rating`-
tabellene har ingen enhets-diskriminator i dag), (3) hvordan bane-søket i
frontend (samme to-felts-forvirring som teeoff-søket over, se det åpne
punktet rett over) skal skille "søk norske baner (teeoff)" fra "søk
internasjonale baner (golfapi.io)" — trolig ett samlet søkefelt med
landkode-basert ruting internt, ikke to synlige knapper. Ikke noe hastverk
— ingen brukere utenfor Norge ennå.
---
## Invitasjonskode, ledende side og projisert stilling — ADR-020
Reist av brukeren 2026-07-19, rett etter at kamp-play-flyten var komplett.