-- V22 : Barème de cotisation par rôle + flag génération automatique mensuelle
-- Auteur : UnionFlow Team
-- Date   : 2026-04-07

-- 1. Activation génération automatique dans les paramètres de cotisation
ALTER TABLE parametres_cotisation_organisation
    ADD COLUMN IF NOT EXISTS generation_automatique_activee BOOLEAN NOT NULL DEFAULT FALSE;

-- 2. Table des barèmes de cotisation par rôle fonctionnel
CREATE TABLE IF NOT EXISTS bareme_cotisation_role (
    id                  UUID         NOT NULL DEFAULT gen_random_uuid(),
    organisation_id     UUID         NOT NULL,
    role_org            VARCHAR(50)  NOT NULL,
    montant_mensuel     NUMERIC(12,2) NOT NULL DEFAULT 0.00,
    montant_annuel      NUMERIC(12,2) NOT NULL DEFAULT 0.00,
    description         VARCHAR(255),
    -- BaseEntity columns
    date_creation       TIMESTAMP,
    date_modification   TIMESTAMP,
    cree_par            VARCHAR(255),
    modifie_par         VARCHAR(255),
    version             BIGINT       DEFAULT 0,
    actif               BOOLEAN      DEFAULT TRUE,
    CONSTRAINT pk_bareme_cotisation_role PRIMARY KEY (id),
    CONSTRAINT fk_bareme_cot_organisation
        FOREIGN KEY (organisation_id) REFERENCES organisations(id) ON DELETE CASCADE,
    CONSTRAINT uq_bareme_cot_org_role
        UNIQUE (organisation_id, role_org)
);

CREATE INDEX IF NOT EXISTS idx_bareme_cot_org ON bareme_cotisation_role (organisation_id);
