-- Frittstående rundeføring (ADR-033), oppfølging 2026-07-24: kølle-bag,
-- valgfritt statistikknivå per deltaker, anywayslag, og bøtte-inndelt
-- lengde på første putt (erstatter det opprinnelige frie tallfeltet).

-- ---------------------------------------------------------------------
-- Kølle-bag (personlig profil, ADR-031-mønster -- ETT sett per konto)
-- ---------------------------------------------------------------------
-- Fast, ikke-utvidbar liste (28 kølletyper) -- app-laget (Pydantic Literal)
-- er den primære validatoren, denne CHECK-en er en bakstopper i samme
-- ånd som gender-CHECK-en andre steder i skjemaet.

ALTER TABLE app_user ADD COLUMN bag_clubs text[];

ALTER TABLE app_user ADD CONSTRAINT app_user_bag_clubs_max_14
    CHECK (bag_clubs IS NULL OR array_length(bag_clubs, 1) <= 14);

ALTER TABLE app_user ADD CONSTRAINT app_user_bag_clubs_known_values
    CHECK (bag_clubs IS NULL OR bag_clubs <@ ARRAY[
        'Driver', 'Mini-driver', 'Driving iron', '3-wood', '4-wood', '5-wood',
        '7-wood', '9-wood', '2-hybrid', '3-hybrid', '4-hybrid', '5-hybrid',
        '1-iron', '2-iron', '3-iron', '4-iron', '5-iron', '6-iron', '7-iron',
        '8-iron', '9-iron', 'Pitching wedge', 'Gap wedge', 'Sand wedge',
        'Lob wedge', 'Ultra-lob wedge', 'Chipper', 'Putter'
    ]::text[]);

-- ---------------------------------------------------------------------
-- Valgfritt statistikknivå per deltaker (default: kun slag -- alt annet
-- er strengt tatt ikke nødvendig for å beregne resultat/HCP)
-- ---------------------------------------------------------------------

ALTER TABLE round_participant ADD COLUMN stat_level text NOT NULL DEFAULT 'strokes_only'
    CHECK (stat_level IN ('strokes_only', 'strokes_and_putts', 'full'));

-- ---------------------------------------------------------------------
-- round_hole: anywayslag (nytt) + bøtte-inndelt førsteputt-lengde
-- (erstatter first_putt_distance_m -- ingen produksjonsdata å bevare,
-- kun 0 rader hadde verdi satt da dette ble besluttet)
-- ---------------------------------------------------------------------

ALTER TABLE round_hole ADD COLUMN anyway_strokes smallint
    CHECK (anyway_strokes IS NULL OR anyway_strokes >= 0);

ALTER TABLE round_hole DROP COLUMN first_putt_distance_m;

ALTER TABLE round_hole ADD COLUMN first_putt_distance_bucket text
    CHECK (first_putt_distance_bucket IS NULL OR first_putt_distance_bucket IN (
        '<1m', '<2m', '<3m', '<5m', '<8m', '8m+'
    ));
