teecup/085_tournament_tiebreak.sql
Erol Haagenrud 300cb8aeaf Tiebreak ved likt resultat: countback eller laveste HCP (ADR-089)
Organisator velger metode fritt i Oppsett, uavhengig for vinner og
resten av feltet. Countback er kaskaderende siste 9->6->3->1 hull i
siste runde. Påvirker aldri Cut-grensen -- strukturelt håndhevet, ikke
bare avtalt ved konvensjon. Migrasjon 085 lagt til, men IKKE anvendt mot
ekte teecup_db ennå -- venter på bekreftelse.
2026-08-18 16:29:10 +02:00

36 lines
2 KiB
SQL

-- =====================================================================
-- TeeCup — migrasjon 085
-- Tiebreak ved likt resultat i individuelle turneringer (brutto/netto/
-- stableford): countback eller laveste HCP, valgt av organisator
-- =====================================================================
-- Bruker spurte, etter å ha fått Cut-funksjonen (ADR-087): "Ved likt
-- resultat ... Skal laveste hcp plasseres foran, beste siste 18/9/6/3/
-- siste hull plasseres foran, eller deles plasseringene. Her kan svaret
-- være forskjellig for vinner og resten av feltet."
--
-- Design bekreftet med bruker (tre spørsmål):
-- - Metoden er IKKE fastlåst i koden -- "Dette skal defineres av
-- arrangøren ved oppsett av turneringen" -- for BÅDE vinneren og
-- resten av feltet, hver for seg (samme svar begge steder, altså to
-- uavhengige innstillinger, ikke én felles).
-- - Tiebreak påvirker KUN sluttresultatet/plasseringsvisningen, ALDRI
-- selve Cut-grensen (Cut sin "topp N og delt plass" fra ADR-087
-- forblir uendret -- fullt delt plass på grensen, uansett hva
-- tiebreak-innstillingen sier).
--
-- `tiebreak_winner_method`/`tiebreak_field_method`: 'none' (uendret
-- oppførsel -- delt plassering, dagens eneste faktiske adferd) er
-- default, ingen regresjon for eksisterende turneringer. 'countback' =
-- kaskaderende "matching cards" (siste 9 -> siste 6 -> siste 3 -> siste
-- hull i turneringens SISTE runde, standard klubbgolf-metode -- ingen
-- egen dybde-parameter, kaskaden er alltid full). 'lowest_hcp' = laveste
-- handicap-indeks vinner uavgjortheten.
-- =====================================================================
\set ON_ERROR_STOP on
ALTER TABLE tournament
ADD COLUMN tiebreak_winner_method text NOT NULL DEFAULT 'none'
CHECK (tiebreak_winner_method IN ('none', 'countback', 'lowest_hcp')),
ADD COLUMN tiebreak_field_method text NOT NULL DEFAULT 'none'
CHECK (tiebreak_field_method IN ('none', 'countback', 'lowest_hcp'));