teecup/066_round_participant_completion.sql
Erol Haagenrud baa1c42d24 Per-deltaker-fullføring av runder + scorekort på e-post; Larvik/Nesbyen via GolfAPI
Backend (ADR-065): round_participant.completed_at (migrasjon 066),
flight-styrt PATCH-tilgang, scorekort-e-post til gjest/lenket bruker
ved individuell fullføring og ved rundefullføring, samt et nytt
on-demand send-scorecard-endepunkt som virker uansett fullføringsstatus.
Frontend-UI kommer i egen runde.

Nye baner Larvik (Seasidebanen) og Nesbyen (manuelt GPS-registrert,
124 punkter) importert til produksjon. Fant og fikset en reell
GolfAPI-datakvalitetsbug underveis: tomme strenger i stedet for
null/fraværende på course rating/slope for begge kjønn (migrasjon
067/068, defensiv parsing + import-endepunkter).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-13 21:24:25 +02:00

24 lines
1.2 KiB
SQL

-- =====================================================================
-- TeeCup — migrasjon 066
-- Per-deltaker avslutning av frittstående runder
-- =====================================================================
-- round.completed_at er rundeomfattende -- hele runden må fullføres
-- samtidig for ALLE deltakere, noe som ikke holder når spillere i
-- samme flight går ulikt antall hull (f.eks. to spiller 18, én 9, én
-- må avslutte etter 14). Denne kolonnen lar EN deltaker markeres
-- ferdig uavhengig av resten av flighten -- stopper "mangler
-- score"-nagging for DEM, uten å låse scoreføring for de som
-- fortsatt spiller (som `round.completed_at` ville gjort).
--
-- Rundens EGEN fullføring (`round.completed_at`, HCP-beregning,
-- varsler) forblir bevisst en separat, manuell handling (bekreftet
-- med bruker) -- denne kolonnen er KUN en nagging-brems +
-- e-post-trigger, ingen auto-cascade.
--
-- Ingen CHECK mot round.completed_at -- applikasjonslaget garanterer
-- rekkefølgen (app/routers/rounds.py).
-- =====================================================================
\set ON_ERROR_STOP on
ALTER TABLE round_participant ADD COLUMN completed_at timestamptz;