teecup/039_hole_score_selected_participant.sql
Erol Haagenrud 64bcc7ad2e "Utslag brukt"-statistikk for scramble/greensome finnes nå også for org-scopede turneringer — samme funksjon som frittstående runder fikk 2026-07-25, bygget som en rask, avgrenset oppfølger.
Ny kolonne hole_score.selected_participant_id (migrasjon 039), validert til å tilhøre riktig side og kun gyldig for delt-ball-hull (ikke individuell ball).
Ny "Hvem sitt utslag ble brukt?"-knapperad i scorekortet for foursome/greensome/scramble-matcher.
Ny "Utslag brukt"-oppsummering i "Vis full oversikt", med opptelling per spiller og "registrert på N av M spilte hull".
Verifisert med en full org-turnering bygget fra bunnen (org/bane/lag/spillere/foursome-match), 51/51 API-sjekker, og en ekte nettleser-gjennomgang der jeg klikket et faktisk valg og bekreftet det landet riktig i databasen. Migrasjon kjørt, begge containere redeployet, teeoff.no upåvirket.

Dermed er "Scramble-grensesnitt" (ARCHITECTURE_DECISIONS.md sitt åpne spørsmål 4) helt avsluttet — begge domener dekket.
2026-07-29 22:20:50 +02:00

27 lines
1.5 KiB
SQL

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