-- ===================================================================== -- TeeCup — migrasjon 006 -- Dato/klokkeslett for turnering/økt/match + locale-forberedelse (i18n) -- ===================================================================== -- Kjøres etter 001-005. Alt additivt (nullable eller default) — trygt mot -- en database som allerede er live. -- ===================================================================== \set ON_ERROR_STOP on -- --------------------------------------------------------------------- -- 1. Turnering: sluttdato (start_date fantes allerede fra 001) -- --------------------------------------------------------------------- ALTER TABLE tournament ADD COLUMN end_date date; ALTER TABLE tournament ADD CONSTRAINT tournament_date_order CHECK (end_date IS NULL OR start_date IS NULL OR end_date >= start_date); -- --------------------------------------------------------------------- -- 2. Økt: starttid + intervall mellom flights, pluss startshull. -- match.tee_time utledes av disse (scheduled_at + (sequence-1) * -- tee_interval_minutes) i app-laget, IKKE lagret per match -- se -- match.tee_time_override under for unntakstilfeller. -- --------------------------------------------------------------------- ALTER TABLE session ADD COLUMN scheduled_at timestamptz; ALTER TABLE session ADD COLUMN tee_interval_minutes smallint CHECK (tee_interval_minutes IS NULL OR tee_interval_minutes > 0); ALTER TABLE session ADD COLUMN start_hole smallint NOT NULL DEFAULT 1 CHECK (start_hole BETWEEN 1 AND 18); -- --------------------------------------------------------------------- -- 3. Match: valgfri overstyring av utledet tee_time (forsinkelser e.l.) -- --------------------------------------------------------------------- ALTER TABLE match ADD COLUMN tee_time_override timestamptz; -- --------------------------------------------------------------------- -- 4. i18n-forberedelse: kun to locales foreløpig -- CHECK gjør det -- eksplisitt at flere krever en ny migrasjon, ikke en stille utvidelse. -- --------------------------------------------------------------------- ALTER TABLE app_user ADD COLUMN preferred_locale text NOT NULL DEFAULT 'nb' CHECK (preferred_locale IN ('nb', 'en')); ALTER TABLE magic_link_token ADD COLUMN locale text NOT NULL DEFAULT 'nb' CHECK (locale IN ('nb', 'en'));