-- =====================================================================
--  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'));
