-- ============================================================================
-- Migration 005 — exposer le rowid dans la vue de consultation
--
-- L'index FTS5 est à contenu externe : il se joint à la table `textes` par
-- `rowid`. Or une vue SQLite n'a pas de rowid propre, et `v_textes.rowid`
-- échoue avec « no such column ».
--
-- Sans cette colonne, l'application ne peut pas à la fois filtrer sur les
-- champs dérivés de la vue (`devant_cc`) et joindre l'index plein texte — soit
-- exactement ce que demande la recherche à facettes.
-- ============================================================================

DROP VIEW v_textes;

CREATE VIEW v_textes AS
SELECT
    t.rowid AS rowid,
    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' THEN 1
        WHEN EXISTS (SELECT 1 FROM decisions_cc d
                      WHERE d.texte_id = t.id
                        AND d.date_decision IS NULL
                        AND COALESCE(d.resultat, 'en_instance') = 'en_instance') THEN 1
        WHEN EXISTS (SELECT 1 FROM evenements e
                      WHERE e.texte_id = t.id AND e.type_etape = 'saisine_cc')
         AND NOT EXISTS (SELECT 1 FROM evenements e
                          WHERE e.texte_id = t.id AND e.type_etape = 'decision_cc')
         AND t.statut <> 'promulguee' THEN 1
        ELSE 0
    END                                                           AS devant_cc
FROM textes t;
