tournament_round_hole hadde siden opprettelse (migrasjon 040) kun gross_strokes -- ingen putts/utslag/innspill/bunker/straffeslag-detalj slik frittstående runder (round_hole) allerede har. Migrasjon 075 gir turneringssiden samme feltsett + en ny optimistisk-lås-kolonne (endepunktet var til nå rent siste-skriver-vinner). tournament_participant.stat_level styrer om HoleGrid åpner det uendrede inline-tallfeltet eller det nye HoleStatsSheet. NumberPicker/ChoiceRow/DirectionCross/Stepper trukket ut til en delt hole-stat-inputs.tsx for gjenbruk mellom begge scoringsflytene. Dette er Steg 1 av to mot spillerens per-hull-historikk på tvers av alle runder/turneringer -- se ADR-071/CHANGELOG for full detalj og verifisering. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
52 lines
2.8 KiB
SQL
52 lines
2.8 KiB
SQL
-- =====================================================================
|
|
-- 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'));
|