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>
24 lines
1.2 KiB
SQL
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;
|