-- ===============================================================================
-- TABLE ENTSOE DAY-AHEAD PRICES
-- ===============================================================================
-- Description: Prix Day-Ahead électricité via API ENTSOE Transparency Platform
-- Source: https://transparency.entsoe.eu/ - RESTful API
-- Données: Prix spot électricité par zone européenne et par heure
-- ===============================================================================

CREATE TABLE IF NOT EXISTS `dm_entsoe_dayahead` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    
    -- Identification temporelle
    `trading_date` DATE NOT NULL COMMENT 'Date de trading (J-1)',
    `delivery_date` DATE NOT NULL COMMENT 'Date de livraison (J)',
    `delivery_hour` TINYINT(2) NOT NULL COMMENT 'Heure de livraison (0-23)',
    `delivery_start` DATETIME NOT NULL COMMENT 'Début période de livraison',
    `delivery_end` DATETIME NOT NULL COMMENT 'Fin période de livraison',
    
    -- Zone géographique
    `bidding_zone` VARCHAR(20) NOT NULL COMMENT 'Code zone enchères ENTSOE (ex: 10YFR-RTE------C)',
    `bidding_zone_name` VARCHAR(50) NOT NULL COMMENT 'Nom zone (ex: France, Germany, Belgium)',
    `area_code` VARCHAR(5) NOT NULL COMMENT 'Code court (FR, DE, BE, IT, ES, NL, GB...)',
    
    -- Prix et volumes
    `price` DECIMAL(12,4) NULL COMMENT 'Prix Day-Ahead (EUR/MWh)',
    `currency` VARCHAR(3) DEFAULT 'EUR' COMMENT 'Devise du prix',
    
    -- Métadonnées ENTSOE
    `resolution` VARCHAR(10) DEFAULT 'PT60M' COMMENT 'Résolution temporelle (PT60M = 1h)',
    `document_type` VARCHAR(50) DEFAULT 'A44' COMMENT 'Type document ENTSOE (A44=Day-Ahead Prices)',
    `process_type` VARCHAR(50) DEFAULT 'A01' COMMENT 'Type processus (A01=Day ahead)',
    
    -- Métadonnées scraping
    `api_response_time` DATETIME NULL COMMENT 'Timestamp réponse API',
    `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'Date insertion en base',
    `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `source_url` TEXT NULL COMMENT 'URL API complète',
    
    PRIMARY KEY (`id`),
    
    -- Clé unique : pas de doublons pour une zone + date + heure
    UNIQUE KEY `uk_zone_delivery` (`bidding_zone`, `delivery_date`, `delivery_hour`),
    
    -- Index pour performances
    KEY `idx_delivery_date` (`delivery_date`),
    KEY `idx_trading_date` (`trading_date`),
    KEY `idx_area_code` (`area_code`),
    KEY `idx_zone_date` (`bidding_zone`, `delivery_date`),
    KEY `idx_created_at` (`created_at`)
    
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='Prix Day-Ahead électricité ENTSOE par zone européenne';

-- ===============================================================================
-- CODES ZONES ENTSOE (Bidding Zones)
-- ===============================================================================
-- France:              10YFR-RTE------C
-- Germany-Luxembourg:  10Y1001A1001A82H
-- Belgium:             10YBE----------2
-- Netherlands:         10YNL----------L
-- Italy North:         10Y1001A1001A73I
-- Spain:               10YES-REE------0
-- UK:                  10YGB----------A
-- Switzerland:         10YCH-SWISSGRIDZ
-- Austria:             10YAT-APG------L
-- Poland:              10YPL-AREA-----S
-- ===============================================================================
