-- ============================================================================
-- Migration 008 :
--  1. Contributions aux projets (façon ChoralDB : validation + décaissement auto)
--  2. Table de paramètres génériques (durées de mandat, etc.)
--  3. Cas sociaux gérés directement au niveau CZJ
-- ============================================================================

-- --------------------------------------------------------------------------
-- 1. Contributions aux projets — un membre propose une contribution, le
--    bureau la valide, ce qui enregistre automatiquement une recette dans
--    les finances (CLJ ou CZJ selon la portée du projet).
-- --------------------------------------------------------------------------

CREATE TABLE projets_contributions (
    id                  INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    projet_id           INT UNSIGNED NOT NULL,
    user_id             INT UNSIGNED NOT NULL,
    montant             DECIMAL(12,2) NOT NULL,
    date_contribution   DATE NOT NULL,
    statut              ENUM('en_attente','validee','rejetee') NOT NULL DEFAULT 'en_attente',
    valide_par_id       INT UNSIGNED NULL,
    date_validation     DATE NULL,
    FOREIGN KEY (projet_id) REFERENCES projets(id) ON DELETE CASCADE,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (valide_par_id) REFERENCES users(id)
) ENGINE=InnoDB;

-- --------------------------------------------------------------------------
-- 2. Paramètres génériques (clé/valeur) — durées de mandat, etc.
-- --------------------------------------------------------------------------

CREATE TABLE parametres (
    id      INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    cle     VARCHAR(100) NOT NULL UNIQUE,
    valeur  VARCHAR(255) NULL
) ENGINE=InnoDB;

INSERT INTO parametres (cle, valeur) VALUES
    ('duree_mandat_clj_mois', '24'),
    ('duree_mandat_coz_mois', '24');

-- --------------------------------------------------------------------------
-- 3. Cas sociaux gérés directement au niveau CZJ (en plus des demandes
--    d'appui remontées par les CLJ, table demandes_appui_czj déjà existante).
-- --------------------------------------------------------------------------

CREATE TABLE czj_cas_sociaux (
    id              INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    clj_origine_id  INT UNSIGNED NULL,
    beneficiaire_nom VARCHAR(150) NOT NULL,
    type_cas        ENUM('maladie','deuil','difficulte_financiere','autre') NOT NULL,
    description     TEXT NOT NULL,
    date_ouverture  DATE NOT NULL,
    statut          ENUM('ouvert','clos') NOT NULL DEFAULT 'ouvert',
    montant_accorde DECIMAL(12,2) NULL,
    date_cloture    DATE NULL,
    FOREIGN KEY (clj_origine_id) REFERENCES clj(id)
) ENGINE=InnoDB;
