-- Table calendrier statique pour affichage PEG gas spot
-- Structure identique au rendu du calendrier actuel

DROP TABLE IF EXISTS dm_calendrier_gas_spot;

CREATE TABLE dm_calendrier_gas_spot (
    id INT AUTO_INCREMENT PRIMARY KEY,
    
    -- Identification du jour
    delivery_date DATE NOT NULL COMMENT 'Date de livraison (jour affiché)',
    product_code VARCHAR(20) NOT NULL COMMENT 'Code produit (PEGDA, PEGWE, etc.)',
    country_code VARCHAR(2) NOT NULL COMMENT 'Code pays (FR, etc.)',
    
    -- Type de produit
    spot_market_type ENUM('DA', 'WE') NOT NULL COMMENT 'Day-Ahead ou Weekend',
    type_label VARCHAR(50) NOT NULL COMMENT 'Libellé affiché (Day-Ahead, Weekend)',
    
    -- Date de trading
    trade_date DATE NOT NULL COMMENT 'Date de trading réelle',
    
    -- Prix
    prix_eur_mwh DECIMAL(10,2) NULL COMMENT 'Prix en €/MWh',
    
    -- Métadonnées pour le rendu
    is_fallback BOOLEAN DEFAULT FALSE COMMENT '1 = prix de fallback (jour férié/weekend)',
    fallback_reason VARCHAR(200) NULL COMMENT 'Raison du fallback si applicable',
    is_holiday BOOLEAN DEFAULT FALSE COMMENT '1 = jour férié UK',
    holiday_name VARCHAR(100) NULL COMMENT 'Nom du jour férié',
    
    -- Timestamps
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    -- Contraintes
    UNIQUE KEY unique_calendar (delivery_date, product_code, spot_market_type),
    INDEX idx_delivery_date (delivery_date),
    INDEX idx_product (product_code),
    INDEX idx_country (country_code),
    INDEX idx_date_product (delivery_date, product_code)
    
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='Calendrier pré-calculé pour affichage gas spot - PEG France';
