-- ===================================================================== -- TeeCup — Full statistikkdybde i org-turneringers hull-scoring (ADR-071, -- 2026-08-15). Steg 1 av "spillerens per-hull-historikk"-funksjonen. -- -- `tournament_round_hole` har siden opprettelse (migrasjon 040) KUN hatt -- `gross_strokes` -- ingen putts/utslag-/innspillretning/bunker-/ -- straffeslag-detalj slik `round_hole` (frittstående runder) allerede -- har. Denne migrasjonen gir turneringssiden samme feltsett, SAMME navn -- og SAMME CHECK-betingelser som `round_hole` (022_round_stats_and_bag.sql/ -- 062_round_hole_version.sql) -- en ren utvidelse, ingen eksisterende -- format (Københavner/BBB/Flag/Eclectic) berøres, de leser fortsatt kun -- `gross_strokes`. -- -- `version` (optimistisk låsing, ADR-057-mønster) er NY for denne -- tabellen -- `tournament_round_hole.update_hole` har til nå vært rent -- siste-skriver-vinner. DEFAULT 1, samme begrunnelse som migrasjon 062: -- en fersk rad skal kunne treffes med expected_version=1 uten at -- klienten må vite at "ubrukt" betyr noe annet. -- -- `tournament_participant.stat_level` (samme tre verdier, samme trygge -- default 'strokes_only') styrer hvor mye UI/backend faktisk ber om -- -- lagt på `tournament_participant` (tournament-bredt), ikke -- `tournament_round_participant` (per runde), fordi en deltaker normalt -- spiller flere runder i samme turnering og ikke skal måtte velge -- statistikknivå på nytt hver gang. -- ===================================================================== \set ON_ERROR_STOP on ALTER TABLE tournament_round_hole ADD COLUMN putts smallint CHECK (putts IS NULL OR putts BETWEEN 0 AND 10), ADD COLUMN club_off_tee text, ADD COLUMN tee_shot_result text CHECK (tee_shot_result IS NULL OR tee_shot_result IN ('fairway', 'left', 'right')), ADD COLUMN approach_result text CHECK (approach_result IS NULL OR approach_result IN ('hit', 'long', 'short', 'left', 'right')), ADD COLUMN chip_count smallint CHECK (chip_count IS NULL OR chip_count >= 0), ADD COLUMN bunker_shot_count smallint CHECK (bunker_shot_count IS NULL OR bunker_shot_count >= 0), ADD COLUMN penalty_strokes smallint CHECK (penalty_strokes IS NULL OR penalty_strokes >= 0), ADD COLUMN anyway_strokes smallint CHECK (anyway_strokes IS NULL OR anyway_strokes >= 0), ADD COLUMN first_putt_distance_bucket text CHECK (first_putt_distance_bucket IS NULL OR first_putt_distance_bucket IN ( '<1m', '<2m', '<3m', '<5m', '<8m', '8m+' )), ADD COLUMN version integer NOT NULL DEFAULT 1; ALTER TABLE tournament_participant ADD COLUMN stat_level text NOT NULL DEFAULT 'strokes_only' CHECK (stat_level IN ('strokes_only', 'strokes_and_putts', 'full'));