teecup/088_shotgun_start.sql

49 lines
2.2 KiB
MySQL
Raw Permalink Normal View History

-- =====================================================================
-- TeeCup — migrasjon 088
-- Shotgun-start: alternativ til den tradisjonelle, staggerte starten
-- =====================================================================
-- Reverserer/utvider EKSPLISITT migrasjon 084 sitt bevisste "IKKE
-- shotgun"-valg fra 2026-08-18 -- se ADR-096 for full begrunnelse for
-- hvorfor dette nå bygges. Samme arkitektoniske hull fantes BEGGE
-- steder rundeplanlegging finnes i appen: individuelle turneringer
-- (tournament_round/tournament_round_group) og lag/Cup-format
-- (session/match) -- ett delt starthull for HELE runden/økten, kun
-- ulikt KLOKKESLETT per gruppe/match, aldri ulikt HULL. Rettet
-- identisk begge steder.
--
-- start_mode = 'consecutive' (standard, uendret oppførsel -- INGEN
-- regresjon): alle grupper/matcher deler samme starthull
-- (tournament_round.start_hole / session.start_hole, uendret), staggert
-- KUN på klokkeslett (eksisterende tee_time_override-mønster, uendret).
--
-- start_mode = 'shotgun': ALLE grupper/matcher i runden/økten går ut
-- SAMTIDIG (intervallet blir meningsløst og ignoreres av app-laget i
-- denne modusen) -- fra HVER SIN starthull i stedet. Nytt, valgfritt
-- per-gruppe/per-match starthull-felt dekker dette -- NULL når runden/
-- økten uansett er 'consecutive' (bruker da forelderens delte
-- starthull som før), settes eksplisitt av organisator per gruppe/
-- match kun i shotgun-modus.
--
-- Samme text+CHECK-mønster som migrasjon 087 (ikke en ny
-- CREATE TYPE ... AS ENUM, konsistent med nyere migrasjoner i denne
-- filserien).
-- =====================================================================
\set ON_ERROR_STOP on
ALTER TABLE tournament_round
ADD COLUMN start_mode text NOT NULL DEFAULT 'consecutive'
CHECK (start_mode IN ('consecutive', 'shotgun'));
ALTER TABLE tournament_round_group
ADD COLUMN start_hole smallint
CHECK (start_hole IS NULL OR start_hole BETWEEN 1 AND 18);
ALTER TABLE session
ADD COLUMN start_mode text NOT NULL DEFAULT 'consecutive'
CHECK (start_mode IN ('consecutive', 'shotgun'));
ALTER TABLE match
ADD COLUMN start_hole smallint
CHECK (start_hole IS NULL OR start_hole BETWEEN 1 AND 18);