Files

47 lines
2.2 KiB
SQL
Raw Permalink Normal View History

-- ============================================================================
-- Migration 004 — échéances du calendrier
--
-- La page « calendrier » agrège trois natures d'échéance :
--
-- * celles qui appartiennent à un texte (décision attendue du Conseil
-- constitutionnel, entrée en vigueur, prochaine étape) — dérivées de
-- `textes`, `evenements` et `decisions_cc` ;
-- * celles qui n'appartiennent à aucun texte mais structurent la fenêtre de
-- veille : sénatoriales du 27 septembre, présentation du projet de loi de
-- finances 2027, rentrée parlementaire ordinaire du 1ᵉʳ octobre.
--
-- Cette table porte les secondes. Le champ `concerne_guadeloupe` est explicite
-- et non déductible : le scrutin sénatorial du 27 septembre 2026 ne concerne
-- PAS la Guadeloupe (série 1, renouvelée en 2023), ce que le §7 du cahier des
-- charges impose de ne pas se tromper.
-- ============================================================================
CREATE TABLE echeances (
id INTEGER PRIMARY KEY AUTOINCREMENT,
code TEXT NOT NULL UNIQUE, -- « senatoriales-2026 »
date_echeance TEXT NOT NULL,
libelle TEXT NOT NULL,
description TEXT,
-- `nationale` : elle vaut pour l'ensemble du territoire ;
-- `texte` : elle découle d'un texte suivi (FK renseignée).
portee TEXT NOT NULL DEFAULT 'nationale'
CHECK (portee IN ('nationale', 'texte')),
texte_id TEXT REFERENCES textes (id) ON DELETE CASCADE,
-- 1 = concerne la Guadeloupe, 0 = ne la concerne pas, NULL = non tranché.
concerne_guadeloupe INTEGER CHECK (concerne_guadeloupe IN (0, 1)),
note_guadeloupe TEXT,
-- Vrai tant que l'échéance est prévisionnelle (postérieure à la date
-- d'arrêté du corpus et non confirmée par un collecteur).
previsionnel INTEGER NOT NULL DEFAULT 1 CHECK (previsionnel IN (0, 1)),
source_url TEXT,
source_extrait TEXT,
cree_le TEXT NOT NULL DEFAULT (datetime('now'))
);
CREATE INDEX idx_echeances_date ON echeances (date_echeance);
CREATE INDEX idx_echeances_texte ON echeances (texte_id);