teecup/039_hole_score_selected_participant.sql

28 lines
1.5 KiB
MySQL
Raw Permalink Normal View History

-- =====================================================================
-- TeeCup — scramble/greensome i ORG-SCOPEDE turneringer: hvilken
-- spillers utslag ble valgt (migrasjon 039). Samme funksjon som
-- migrasjon 036 ga frittstående runder 2026-07-25 -- bevisst holdt
-- utenfor DEN runden (se dens egen kommentar), tatt fatt på nå som
-- rask, avgrenset oppfølger (FEATURE_BACKLOG.md "Scramble: statistikk
-- over utslag brukt per spiller").
--
-- Kun meningsfullt på en DELT-BALL-hull-rad (hole_score.
-- match_participant_id IS NULL) -- håndhevet i app-laget
-- (submit_hole_score), ikke en CHECK, samme mønster som migrasjon 036.
-- Nullable -- helt valgfritt å registrere.
--
-- Composite FK til match_participant (organization_id, id), samme
-- mønster som hole_score.match_participant_id sin egen FK over --
-- RLS håndheves via organization_id på hole_score selv, uendret.
-- ON DELETE SET NULL (ikke CASCADE): fjernes en deltaker fra matchen
-- (mulig FØR lås, se matches.py DELETE-endepunkt) skal ikke slette
-- allerede registrerte hull-scorer, kun nullstille selve valget.
-- =====================================================================
\set ON_ERROR_STOP on
ALTER TABLE hole_score ADD COLUMN selected_participant_id uuid;
ALTER TABLE hole_score ADD CONSTRAINT hole_score_selected_participant_fk
FOREIGN KEY (organization_id, selected_participant_id)
REFERENCES match_participant(organization_id, id) ON DELETE SET NULL;