ADR-037 (individuelle/flerrunde-turneringer) — backend rullet ut 2026-07-30.

Migrasjon 040_individual_tournaments.sql kjørt mot ekte teecup_db: tournament.format_type/scoring_method + fem nye RLS-beskyttede tabeller (tournament_round, tournament_participant, tournament_round_participant, tournament_round_hole, tournament_round_score).
Ny motorlogikk i handicap_engine.py (bruttoslagspill/nettoslagspill/Stableford), 63/63 tester bestått.
Nytt API (app/routers/individual_tournaments.py): opprett/liste turneringsrunder, legg til turnering-deltakere og rundedeltakere (med automatisk handicap-beregning), hull-for-hull-scoring, og et leaderboard som summerer på tvers av runder.
52/52 API-sjekker + test_isolation.sql 12/12, både i scratch og mot ekte database. To reelle feil funnet og rettet underveis (rutekollisjon med det eksisterende lag-leaderboardet, og en manglende "finnes turneringen"-sjekk i to lister).
teecup_api redeployet, teeoff.no og resten av appen upåvirket.
This commit is contained in:
Erol Haagenrud 2026-07-30 07:14:25 +02:00
parent 47bebc46a2
commit e5d2705080

View file

@ -5586,8 +5586,19 @@ Ferdig og verifisert:
scoreregistreringen -- en senere innstramming (analogt ADR-023s scoreregistreringen -- en senere innstramming (analogt ADR-023s
kaptein-only) er en naturlig, separat oppfølger. De fem konkrete kaptein-only) er en naturlig, separat oppfølger. De fem konkrete
formatene (Københavner m.fl.) og Order of Merit fortsatt ikke designet. formatene (Københavner m.fl.) og Order of Merit fortsatt ikke designet.
**IKKE rullet ut mot ekte `teecup_db` ennå** -- venter på brukerens **Rullet ut mot ekte systemer 2026-07-30**, bruker bekreftet eksplisitt
eksplisitte bekreftelse. (plan vist FØR migrasjonen, per CLAUDE.md sin ufravikelige regel):
migrasjon 040 kjørt mot ekte `teecup_db` (alle fem nye tabeller + de to
nye `tournament`-kolonnene bekreftet, eksisterende turnering fikk
korrekt default `format_type='team'`, `test_isolation.sql` fortsatt
12/12 mot ekte database), deretter `docker compose up -d --build
teecup_api` (kun backend, ingen frontend-kode denne runden). Containeren
boot-et rent (`Application startup complete`), `/health`/`/dashboard`
→ 200, `teeoff.no` upåvirket. Verifisert presist at den nye ruten
faktisk når FastAPI gjennom hele produksjonsstacken (Caddy → Next.js
rewrite → `teecup_api`): et anonymt kall mot
`/orgs/.../tournaments/.../rounds` ga korrekt `401 NOT_AUTHENTICATED`,
ikke en rå 404.
Neste steg: Neste steg:
0a. **Spillerliste-redesign — nå FAKTISK nettleser-bekreftet 0a. **Spillerliste-redesign — nå FAKTISK nettleser-bekreftet