-- ============================================================================
-- Migration 002 — régime de libertés
--
-- L'annexe du rapport (`sec10.md`, note méthodologique) cote chaque texte selon
-- trois régimes : « droits+ » (création ou extension de droits), « contrôle+ »
-- (restriction, ou extension des pouvoirs de contrôle), « mixte » ou « neutre ».
--
-- Cette cotation porte sur le texte dans son ensemble : elle ne dit pas quel
-- public est touché. Elle est donc stockée à part, et non dépliée d'office dans
-- `impacts` — remplir les trois publics à partir d'une cotation globale
-- reviendrait à inventer une ventilation que la source ne donne pas.
-- ============================================================================

ALTER TABLE textes ADD COLUMN regime_libertes TEXT
    CHECK (regime_libertes IN ('droits_plus', 'controle_plus', 'mixte', 'neutre'));

ALTER TABLE textes ADD COLUMN regime_libertes_note TEXT;

CREATE INDEX idx_textes_regime ON textes (regime_libertes);

DROP VIEW v_textes;

CREATE VIEW v_textes AS
SELECT
    t.*,
    (SELECT COUNT(*) FROM sources s WHERE s.texte_id = t.id)      AS nb_sources,
    (SELECT COUNT(*) FROM evenements e WHERE e.texte_id = t.id)   AS nb_evenements,
    CASE WHEN t.statut = 'saisie_cc'
              OR EXISTS (SELECT 1 FROM decisions_cc d
                         WHERE d.texte_id = t.id AND d.date_decision IS NULL)
         THEN 1 ELSE 0 END                                        AS devant_cc
FROM textes t;
