-- =============================================
-- Table: sys_demande_rge_bulk
-- Description: Gestion des imports en masse de demandes SGE
-- Date de création: 2026-02-05
-- =============================================

-- Suppression de la table si elle existe déjà

-- Création de la table sys_demande_rge_bulk
CREATE TABLE sys_demande_rge_bulk (
    id INT AUTO_INCREMENT PRIMARY KEY,
    
    -- Informations de l'import
    batch_id VARCHAR(50) NOT NULL COMMENT 'Identifiant unique du lot d''import',
    nature VARCHAR(100) DEFAULT NULL COMMENT 'Nature du regroupement (ex: APPRO_2024_Q1, MISE_EN_SERVICE, etc.)',
    
    -- Type de demande
    type_demande VARCHAR(50) NOT NULL COMMENT 'Type de demande: R67, R63, C68',
    type_action VARCHAR(100) NOT NULL COMMENT 'Type d''action: CREER_DEMANDE_HISTO_FACT, CREER_DEMANDE_HISTO_FINE, CREER_DEMANDE_TECHNIQUE',
    
    -- Informations du PRM
    prm VARCHAR(50) NOT NULL COMMENT 'Numéro PRM',
    sens VARCHAR(20) NOT NULL COMMENT 'INJECTION ou SOUTIRAGE',
    
    -- Période de la demande
    date_debut DATE NOT NULL COMMENT 'Date de début de la période',
    date_fin DATE NOT NULL COMMENT 'Date de fin de la période',
    
    -- Statuts et traitement
    statut VARCHAR(50) DEFAULT 'EN_ATTENTE' COMMENT 'EN_ATTENTE, VALIDE, GENERE, ERREUR',
    regroupement BOOLEAN DEFAULT FALSE COMMENT 'Indique si cette ligne fait partie d''un regroupement',
    
    -- Résultat de la génération
    demande_sge_id INT DEFAULT NULL COMMENT 'ID de la demande générée dans sys_demande_sge',
    erreur TEXT DEFAULT NULL COMMENT 'Message d''erreur en cas de problème',
    
    -- Dates de suivi
    date_import DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 'Date d''import du fichier',
    date_validation DATETIME DEFAULT NULL COMMENT 'Date de validation',
    date_generation DATETIME DEFAULT NULL COMMENT 'Date de génération dans sys_demande_sge',
    
    -- Métadonnées
    imported_by VARCHAR(100) DEFAULT NULL COMMENT 'Utilisateur ayant importé',
    
    -- Index
    INDEX idx_batch_id (batch_id),
    INDEX idx_nature (nature),
    INDEX idx_statut (statut),
    INDEX idx_type_demande (type_demande),
    INDEX idx_prm (prm),
    INDEX idx_date_import (date_import),
    
    CONSTRAINT chk_type_demande CHECK (type_demande IN ('R67', 'R63', 'C68')),
    CONSTRAINT chk_sens CHECK (sens IN ('INJECTION', 'SOUTIRAGE')),
    CONSTRAINT chk_statut CHECK (statut IN ('EN_ATTENTE', 'VALIDE', 'GENERE', 'ERREUR'))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Gestion des imports en masse de demandes SGE';

-- Création d'une vue pour faciliter les requêtes
CREATE OR REPLACE VIEW v_demande_bulk_stats AS
SELECT 
    batch_id,
    nature,
    type_demande,
    COUNT(*) as total_lignes,
    SUM(CASE WHEN statut = 'EN_ATTENTE' THEN 1 ELSE 0 END) as nb_en_attente,
    SUM(CASE WHEN statut = 'VALIDE' THEN 1 ELSE 0 END) as nb_valide,
    SUM(CASE WHEN statut = 'GENERE' THEN 1 ELSE 0 END) as nb_genere,
    SUM(CASE WHEN statut = 'ERREUR' THEN 1 ELSE 0 END) as nb_erreur,
    MIN(date_import) as date_import,
    MAX(date_generation) as derniere_generation
FROM sys_demande_rge_bulk
GROUP BY batch_id, nature, type_demande;

-- Message de confirmation
SELECT 'Table sys_demande_rge_bulk créée avec succès' as message;
SELECT 'Vue v_demande_bulk_stats créée avec succès' as message;
