53 lines
2.8 KiB
MySQL
53 lines
2.8 KiB
MySQL
|
|
-- =====================================================================
|
||
|
|
-- 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'));
|