Steg 1 (backend, HCP-prosent + Match-HCP): ny migrasjon 051_round_allowance_override.sql (round.allowance_override jsonb), koblet inn i _recompute_side_handicaps/_relative_strokes_for_round + POST/PATCH /rounds. Verifisert presist i scratch: 100%→50%-prosent ga playing_handicap 24/10 → 12/5 nøyaktig som beregnet for hånd, og use_matchplay_handicap slått av ga rå 12/5 i stedet for differensial 7/0. Slagspill upåvirket (regresjon bekreftet). Steg 2 (kode-fiks, lag-gruppering): ScorecardGrid (live-scoring) og MatchScorecardGrid (post-runde/fremtidig sammenslått side) sorterer nå stabilt på round_side_id før rendering. Bygget en fersk scratch-fourball-runde med akkurat ditt bug-scenario (A→Rødt, B→Blått, C→Rødt, D→Blått, lagt til i den rekkefølgen) og bekreftet visuelt i nettleseren i begge visningene: Rødt lag vises samlet, deretter Blått — ikke lenger interleaved. Typesjekk + full produksjonsbuild kompilerte rent gjennom hele runden. Gjenstår før jeg går videre til V0-promptene: migrasjon 051 er kun kjørt i scratch, ikke mot ekte teecup_db. Planen er: docker exec -i teeoff_db psql -U teeoff_admin -d teecup_db -v ON_ERROR_STOP=1 < 051_round_allowance_override.sql — ett rent additivt ALTER TABLE round ADD COLUMN allowance_override jsonb, ingen eksisterende rader berøres. Deretter docker compose up -d --build teecup_api teecup_frontend (backend for allowance-koblingen, frontend for gruppering-fiksen). Bekreft så kjører jeg dette, og går videre til V0-prompt 1 (rundeoppsett-veiviseren).
16 lines
937 B
SQL
16 lines
937 B
SQL
-- =====================================================================
|
|
-- TeeCup — round.allowance_override, migrasjon 051.
|
|
--
|
|
-- "Det store grepet" (2026-08-01/02): brukeren bekreftet at HCP-prosenten
|
|
-- for frittstående runders match-play-formater alltid skal være
|
|
-- justerbar, og at Match-HCP (differensial-fordeling mellom sidene, jf.
|
|
-- handicap_engine.py sin allerede testede match_play_strokes()) skal
|
|
-- kunne slås av/på. ADR-014s "fire brytere" (AllowanceConfig) og selve
|
|
-- match_play_strokes()-algoritmen var allerede ferdigbygd og produksjons-
|
|
-- kjørt for org-turneringer (session.allowance_override, migrasjon 001)
|
|
-- -- frittstående runder manglet bare selve kolonnen. Ingen ny motor,
|
|
-- ren gjenbruk (se app/handicap.py sin parse_allowance_config).
|
|
-- =====================================================================
|
|
\set ON_ERROR_STOP on
|
|
|
|
ALTER TABLE round ADD COLUMN allowance_override jsonb;
|