-- =====================================================================
--  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'));
