-- ============================================================
-- EXTRACTION DE TOUTES LES COLONNES DE LA BASE DE DONNÉES
-- ============================================================
-- Ce script liste toutes les colonnes de chaque table avec leurs types
-- Utile pour identifier quelles données doivent être scrapées
-- ============================================================

-- MÉTHODE 1 : Utiliser INFORMATION_SCHEMA (Plus lisible)
SELECT
    TABLE_NAME as 'Table',
    COLUMN_NAME as 'Colonne',
    DATA_TYPE as 'Type',
    IS_NULLABLE as 'Nullable',
    COLUMN_DEFAULT as 'Défaut',
    COLUMN_COMMENT as 'Commentaire'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
ORDER BY TABLE_NAME, ORDINAL_POSITION;

-- ============================================================
-- MÉTHODE 2 : Format groupé par table (Plus facile à lire)
-- ============================================================

-- TABLE: tracks (hippodromes)
SELECT '=== TRACKS (HIPPODROMES) ===' as '';
DESCRIBE tracks;

-- TABLE: horses (chevaux)
SELECT '=== HORSES (CHEVAUX) ===' as '';
DESCRIBE horses;

-- TABLE: jockeys
SELECT '=== JOCKEYS ===' as '';
DESCRIBE jockeys;

-- TABLE: trainers (entraîneurs)
SELECT '=== TRAINERS (ENTRAÎNEURS) ===' as '';
DESCRIBE trainers;

-- TABLE: owners (propriétaires)
SELECT '=== OWNERS (PROPRIÉTAIRES) ===' as '';
DESCRIBE owners;

-- TABLE: races (courses)
SELECT '=== RACES (COURSES) ===' as '';
DESCRIBE races;

-- TABLE: race_entries (partants)
SELECT '=== RACE_ENTRIES (PARTANTS) ===' as '';
DESCRIBE race_entries;

-- TABLE: sectionals (temps partiels)
SELECT '=== SECTIONALS (TEMPS PARTIELS) ===' as '';
DESCRIBE sectionals;

-- TABLE: criteria_weights (poids des critères)
SELECT '=== CRITERIA_WEIGHTS (POIDS DES CRITÈRES) ===' as '';
DESCRIBE criteria_weights;

-- TABLE: scoring_history (historique des scores)
SELECT '=== SCORING_HISTORY (HISTORIQUE) ===' as '';
DESCRIBE scoring_history;

-- ============================================================
-- MÉTHODE 3 : Export format CSV/Texte (Plus facile à copier)
-- ============================================================

SELECT
    CONCAT(
        TABLE_NAME,
        '.',
        COLUMN_NAME,
        ' (',
        COLUMN_TYPE,
        IF(IS_NULLABLE = 'NO', ' NOT NULL', ' NULL'),
        IF(COLUMN_DEFAULT IS NOT NULL, CONCAT(' DEFAULT ', COLUMN_DEFAULT), ''),
        ')'
    ) as 'Colonnes de la base de données'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
ORDER BY TABLE_NAME, ORDINAL_POSITION;
