-- Migration: Ajout de la fonctionnalité "Prise en compte"
-- Date: 2025-01-20
-- Description: Ajoute les colonnes et tables nécessaires pour gérer la prise en compte des dossiers

-- 1. Ajouter la colonne prise_en_compte à la table email_clients
ALTER TABLE email_clients
ADD COLUMN prise_en_compte TINYINT(1) DEFAULT 0 COMMENT '0=en attente de prise en compte, 1=pris en compte';

-- 2. Ajouter la colonne source_import pour tracer d'où vient le dossier
ALTER TABLE email_clients
ADD COLUMN source_import VARCHAR(100) NULL COMMENT 'Source de l\'import (ex: API_COM, MANUEL, etc.)';

-- 3. Ajouter la colonne imported_at pour tracer la date d'import
ALTER TABLE email_clients
ADD COLUMN imported_at DATETIME NULL COMMENT 'Date d\'import du dossier';

-- 4. Créer la table des dossiers exclus (blacklist)
CREATE TABLE IF NOT EXISTS email_clients_blacklist (
    id INT AUTO_INCREMENT PRIMARY KEY,
    code_dossier VARCHAR(50) NOT NULL UNIQUE COMMENT 'Code du dossier exclu',
    reason VARCHAR(255) NULL COMMENT 'Raison de l\'exclusion',
    excluded_by INT NULL COMMENT 'ID de l\'utilisateur qui a exclu',
    excluded_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 'Date d\'exclusion',
    notes TEXT NULL COMMENT 'Notes supplémentaires',
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,

    INDEX idx_code_dossier (code_dossier),
    INDEX idx_excluded_at (excluded_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 5. Créer la table de log des prises en compte
CREATE TABLE IF NOT EXISTS email_prise_en_compte_log (
    id INT AUTO_INCREMENT PRIMARY KEY,
    client_id INT NOT NULL COMMENT 'ID du client',
    action ENUM('prise_en_compte', 'exclusion') NOT NULL COMMENT 'Action effectuée',
    user_id INT NOT NULL COMMENT 'ID de l\'utilisateur',
    notes TEXT NULL COMMENT 'Notes de l\'utilisateur',
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,

    INDEX idx_client_id (client_id),
    INDEX idx_user_id (user_id),
    INDEX idx_created_at (created_at),

    FOREIGN KEY (client_id) REFERENCES email_clients(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 6. Mettre à jour tous les clients existants comme "pris en compte"
-- (car ils sont déjà dans le système)
UPDATE email_clients
SET prise_en_compte = 1
WHERE prise_en_compte IS NULL OR prise_en_compte = 0;

-- 7. Créer un index pour optimiser les requêtes de filtrage
CREATE INDEX idx_prise_en_compte ON email_clients(prise_en_compte);
CREATE INDEX idx_source_import ON email_clients(source_import);
CREATE INDEX idx_imported_at ON email_clients(imported_at);
