Golf - Juniortävlingar

Dokumentationsportal

Arkitekturbeslut

Detta dokument innehåller viktiga tekniska beslut och varför de fattades.

ADR-001: main motsvarar produktion

Beslut: main är den branch som produktion bygger från.

Motivering: Det ger en enkel och tydlig modell där produktionskoden alltid kan identifieras i Git.

ADR-002: develop motsvarar test

Beslut: develop används för testmiljön.

Motivering: Nya funktioner kan verifieras utan att påverka produktion.

ADR-003: Git Worktree används

Beslut: prod/app och test/app är separata worktrees.

Motivering: Test och produktion kan ligga på olika brancher samtidigt utan manuell kopiering.

ADR-004: Data ligger utanför Git

Beslut: Datakataloger versioneras inte.

Motivering: Data är miljöspecifik, kan innehålla personuppgifter och ska inte blandas med källkod.

ADR-005: Docker används som körmiljö

Beslut: Applikationen körs i Docker med Gunicorn.

Motivering: Docker ger repeterbar körmiljö och gör test/prod mer lika.

ADR-006: Dokumentationen ligger i appen

Beslut: Dokumentation exponeras i applikationen under /docs.

Motivering: Systemet blir självdokumenterande och dokumentationen följer releaserna.

ADR-007: Releasepaket används som leveransformat

Beslut: Nya ändringar levereras som zip-baserade releasepaket.

Motivering: Det minskar manuell klipp-och-klistra och gör installation mer repeterbar.

ADR: Gemensam spelaridentitet (20.43.0)

Ranking, historiska resultat och framtida anmälningar ska inte skapa separata webbidentiteter. Tabellen players är den gemensamma identiteten. Källtabellerna behålls och länkas med canonical_player_id. Historiska spelare behandlas som auktoritativ källa vid första migreringen eftersom de redan bär relationen till tävlingsresultaten.

ADR: SGF Club Registry före Location Registry (v20.45.0)

Beslut: Officiella SGF-klubbar importeras och matchas före skapande av spelplatser och banor.

Motiv: Klubbnummer är stabilare än observerade fritextnamn. En explicit confidence score gör automatiska och manuella beslut spårbara.

Konsekvens: Endast klubbregistret får skrivas i v20.45.0. Venue/course-import aktiveras i en senare release efter granskning av den kombinerade analysrapporten.

ADR: konservativ Course Registry-import

Endast course-namn klassificerade som specific och kopplade till redan matchat venue får skrivas. Alla andra klassificeringar förblir read-only för att undvika semantiskt felaktiga banobjekt.

ADR: Venue Registry is the source of truth for distances

Accepted in v20.46.0. Distances are tied to primary venue IDs. The old name-based location table remains only as a compatibility projection during migration.