-- ============================================================
-- V2.9 — Améliorations audit_logs : portée + organisation
-- Double niveau : ORGANISATION (manager) + PLATEFORME (super admin)
-- Conservation 10 ans — BCEAO/OHADA/Fiscalité ivoirienne
-- Auteur: UnionFlow Team
-- ============================================================

ALTER TABLE audit_logs
    ADD COLUMN IF NOT EXISTS organisation_id UUID,
    ADD COLUMN IF NOT EXISTS portee          VARCHAR(15) NOT NULL DEFAULT 'PLATEFORME';

ALTER TABLE audit_logs
    ADD CONSTRAINT fk_audit_organisation FOREIGN KEY (organisation_id) REFERENCES organisations(id) ON DELETE SET NULL,
    ADD CONSTRAINT chk_audit_portee CHECK (portee IN ('ORGANISATION','PLATEFORME'));

CREATE INDEX IF NOT EXISTS idx_audit_organisation ON audit_logs(organisation_id);
CREATE INDEX IF NOT EXISTS idx_audit_portee        ON audit_logs(portee);

-- Index composite pour les consultations fréquentes
CREATE INDEX IF NOT EXISTS idx_audit_org_portee_date ON audit_logs(organisation_id, portee, date_heure DESC);

COMMENT ON COLUMN audit_logs.organisation_id IS 'Organisation concernée — NULL pour événements plateforme';
COMMENT ON COLUMN audit_logs.portee IS 'ORGANISATION: visible par le manager | PLATEFORME: visible uniquement par Super Admin UnionFlow';
