43 lines
2.3 KiB
SQL
43 lines
2.3 KiB
SQL
-- =====================================================================
|
|
-- 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'));
|