-- =====================================================================
--  TeeCup — Bingo Bango Bongo (frittstående runder), migrasjon 043.
--  Fjerde av åtte nye turneringsformater denne runden (se plan/ADR for
--  full liste). Flatt felt, INGEN sider, poengbasert. Bingo/bango/bongo
--  er en per-HULL-fakta (hvem vant hver av de tre kategoriene), ikke en
--  per-spiller/side-fakta -- passer derfor IKKE inn i round_hole sin
--  eksisterende XOR-form (round_participant_id ELLER round_side_id) --
--  krever en ny, liten dedikert tabell, én rad per hull for hele runden.
--
--  Alle tre kategoriene registreres MANUELT av den som fører score, samme
--  mønster som "valgt utslag" i scramble/greensome (migrasjon 036) -- INGEN
--  GPS/live-sporing. Sweep-bonus (dobbelt poeng ved rent sveip) er en
--  valgfri organisator-innstilling (bekreftet av bruker), IKKE fast på.
--  Lagvariant bevisst UTENFOR omfang v1 (bekreftet av bruker).
-- =====================================================================
\set ON_ERROR_STOP on

ALTER TABLE round DROP CONSTRAINT round_play_format_check;
ALTER TABLE round ADD CONSTRAINT round_play_format_check
    CHECK (play_format IN ('stroke', 'match', 'skins', 'fourball', 'foursome', 'greensome', 'scramble_2', 'scramble_4', 'stableford', 'chapman', 'copenhagen', 'bbb'));

ALTER TABLE round ADD COLUMN bbb_sweep_bonus_enabled boolean NOT NULL DEFAULT false;

CREATE TABLE round_bbb_hole (
    id                    uuid PRIMARY KEY DEFAULT gen_random_uuid(),
    round_id              uuid NOT NULL REFERENCES round(id) ON DELETE CASCADE,
    hole_number           smallint NOT NULL CHECK (hole_number BETWEEN 1 AND 18),
    bingo_participant_id  uuid REFERENCES round_participant(id) ON DELETE SET NULL,
    bango_participant_id  uuid REFERENCES round_participant(id) ON DELETE SET NULL,
    bongo_participant_id  uuid REFERENCES round_participant(id) ON DELETE SET NULL,
    UNIQUE (round_id, hole_number)
);

GRANT SELECT, INSERT, UPDATE, DELETE ON round_bbb_hole TO teecup_app;
