39 lines
1.8 KiB
MySQL
39 lines
1.8 KiB
MySQL
|
|
-- =====================================================================
|
||
|
|
-- TeeCup — Utvidede spillerfelt i org-spillerpoolen (2026-08-14).
|
||
|
|
-- Bruker: midlertidige/nyopprettede spillere i "Deltakere"-flyten
|
||
|
|
-- (org-individuelle turneringer, individual-tournament-detail.tsx)
|
||
|
|
-- manglet felt en reell klubbadministrator trenger ved registrering.
|
||
|
|
--
|
||
|
|
-- Splitter navn i for-/etternavn -- SAMME mønster som migrasjon 052
|
||
|
|
-- (round_participant.guest_first_name/guest_last_name): display_name
|
||
|
|
-- beholdes UENDRET som det faktisk VISTE fulle navnet (unngår å røre
|
||
|
|
-- alle eksisterende steder som leser player.display_name direkte,
|
||
|
|
-- bl.a. leaderboards/matcher/rostre) -- first_name/last_name er en NY,
|
||
|
|
-- valgfri kilde til sannhet ved REDIGERING i det utvidede skjemaet,
|
||
|
|
-- ikke en erstatning. App-laget (ikke en DB-trigger) holder dem i sync
|
||
|
|
-- ved oppretting, samme "kalleren regner ut display_name"-ansvar som
|
||
|
|
-- round_participant sin ekvivalent.
|
||
|
|
--
|
||
|
|
-- `paid`/`comment`: registreringsadministrasjon (betalt-avkrysning,
|
||
|
|
-- fritekstnotat) -- fantes ikke i noen form før.
|
||
|
|
-- =====================================================================
|
||
|
|
\set ON_ERROR_STOP on
|
||
|
|
|
||
|
|
ALTER TABLE player ADD COLUMN first_name text;
|
||
|
|
ALTER TABLE player ADD COLUMN last_name text;
|
||
|
|
ALTER TABLE player ADD COLUMN paid boolean NOT NULL DEFAULT false;
|
||
|
|
ALTER TABLE player ADD COLUMN comment text;
|
||
|
|
|
||
|
|
-- Backfill for EKSISTERENDE spillere -- samme "første ord = fornavn,
|
||
|
|
-- resten = etternavn"-heuristikk som migrasjon 052 sin backfill.
|
||
|
|
UPDATE player
|
||
|
|
SET first_name = CASE
|
||
|
|
WHEN position(' ' IN display_name) > 0 THEN split_part(display_name, ' ', 1)
|
||
|
|
ELSE display_name
|
||
|
|
END,
|
||
|
|
last_name = CASE
|
||
|
|
WHEN position(' ' IN display_name) > 0
|
||
|
|
THEN NULLIF(trim(substring(display_name FROM position(' ' IN display_name) + 1)), '')
|
||
|
|
ELSE NULL
|
||
|
|
END;
|