teecup/006_scheduling_and_locale.sql

44 lines
2.3 KiB
MySQL
Raw Permalink Normal View History

2026-07-17 21:40:42 +02:00
-- =====================================================================
-- 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'));