-- Base de données FARM Observatory
-- Création de la base de données et des tables

CREATE DATABASE IF NOT EXISTS farm_observatory CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE farm_observatory;

-- Table des pays et leurs données
CREATE TABLE IF NOT EXISTS country_data (
    id INT AUTO_INCREMENT PRIMARY KEY,
    code_pays VARCHAR(10) NOT NULL,
    nom_pays VARCHAR(100) NOT NULL,
    region VARCHAR(100),
    annee INT NOT NULL,
    
    -- Indicateurs généraux
    pop_totale BIGINT,
    part_pop_rurale DECIMAL(5,2),
    part_emploi_agricole DECIMAL(5,2),
    dette_pub_pib DECIMAL(5,2),
    rang_idh INT,
    
    -- Soutiens et dépenses
    staa DECIMAL(10,2),
    dpaa DECIMAL(10,2),
    dpaa_producteurs DECIMAL(10,2),
    dpaa_consommateurs DECIMAL(10,2),
    dpaa_services_collectifs DECIMAL(10,2),
    spm DECIMAL(10,2),
    
    -- Production et productivité
    ptf_agricole DECIMAL(10,4),
    production_vegetale DECIMAL(10,2),
    production_animale DECIMAL(10,2),
    production_aquaculture DECIMAL(10,2),
    
    -- Indices d'intrants
    iai_total DECIMAL(10,2),
    iai_terres DECIMAL(10,2),
    iai_travail DECIMAL(10,2),
    iai_capital DECIMAL(10,2),
    iai_engrais DECIMAL(10,2),
    iai_aliments_betail DECIMAL(10,2),
    
    -- Superficies
    superficies_total INT,
    superficies_terres_cultivees INT,
    superficies_irrigation_equipe INT,
    superficies_paturages INT,
    
    -- Commerce
    importation_total DECIMAL(10,2),
    importation_details TEXT,
    exportations_details TEXT,
    
    -- Politiques et stratégies
    strategie TEXT,
    institutions TEXT,
    objectifs TEXT,
    durabilite TEXT,
    distribution TEXT,
    performances TEXT,
    focus_politique TEXT,
    
    -- Scores de sécurité alimentaire
    score_sous_alimentation DECIMAL(5,2),
    score_vulnerabilite_imports DECIMAL(5,2),
    score_obesite DECIMAL(5,2),
    score_autosuffisance_cerealiere DECIMAL(5,2),
    
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    INDEX idx_pays_annee (code_pays, annee),
    INDEX idx_region (region),
    INDEX idx_annee (annee)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Table pour les logs d'import
CREATE TABLE IF NOT EXISTS import_logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    filename VARCHAR(255) NOT NULL,
    rows_imported INT DEFAULT 0,
    rows_failed INT DEFAULT 0,
    import_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    status ENUM('success', 'partial', 'failed') DEFAULT 'success',
    error_message TEXT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Table pour les sessions admin
CREATE TABLE IF NOT EXISTS admin_sessions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    session_id VARCHAR(255) NOT NULL UNIQUE,
    username VARCHAR(100) NOT NULL,
    ip_address VARCHAR(45),
    user_agent TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    last_activity TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_session (session_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
