-- ============================================================
-- MIGRATION 001: Ajout des colonnes manquantes
-- ============================================================
-- Description: Ajoute toutes les colonnes utilisées par le scraper
--              mais absentes du schéma initial
-- Date: 2024-12-05
-- ============================================================

-- ============================================================
-- 1. TABLE race_entries - Colonnes manquantes
-- ============================================================

-- Ajouter owner_id (référence aux propriétaires)
ALTER TABLE race_entries
ADD COLUMN owner_id INT AFTER trainer_id,
ADD FOREIGN KEY (owner_id) REFERENCES owners(id) ON DELETE SET NULL;

-- Ajouter draw (position de départ/corde)
-- Note: Différent de stall_number (numéro de boxe), draw est la position réelle
ALTER TABLE race_entries
ADD COLUMN draw INT AFTER stall_number,
ADD INDEX idx_draw (draw);

-- Ajouter handicap_mark (défense/handicap)
ALTER TABLE race_entries
ADD COLUMN handicap_mark VARCHAR(50) AFTER draw;

-- Ajouter final_odds (cote finale, différente de starting_odds)
ALTER TABLE race_entries
ADD COLUMN final_odds DECIMAL(8, 2) AFTER starting_odds;

-- Ajouter last_performances (musique récente du cheval)
-- Format: "1-3-2-5-1" (dernières positions)
ALTER TABLE race_entries
ADD COLUMN last_performances VARCHAR(255) AFTER equipment_change;

-- Renommer race_comments en entry_comments pour éviter confusion
-- et ajouter comments (commentaire général)
ALTER TABLE race_entries
ADD COLUMN comments TEXT AFTER race_comments;

-- ============================================================
-- 2. TABLE owners - Créer la table si elle n'existe pas
-- ============================================================

CREATE TABLE IF NOT EXISTS owners (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL UNIQUE,
    country VARCHAR(100),

    -- Statistiques
    stats_runs INT DEFAULT 0,
    stats_wins INT DEFAULT 0,
    stats_places INT DEFAULT 0,

    -- Métadonnées
    france_galop_url VARCHAR(500),
    last_scraped_at TIMESTAMP,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

    INDEX idx_name (name),
    FULLTEXT idx_fulltext_name (name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ============================================================
-- 3. TABLE tracks - Enrichissement des données
-- ============================================================

-- Ajouter des informations supplémentaires pour les hippodromes
ALTER TABLE tracks
MODIFY COLUMN country VARCHAR(100) DEFAULT 'FR',
ADD COLUMN city VARCHAR(255) AFTER country,
ADD COLUMN region VARCHAR(255) AFTER city;

-- ============================================================
-- 4. TABLE horses - Colonnes pour enrichissement
-- ============================================================

-- S'assurer que owner peut être NULL (car on a une table owners séparée maintenant)
ALTER TABLE horses
MODIFY COLUMN owner VARCHAR(255) NULL;

-- Ajouter index pour optimiser les recherches par pedigree
ALTER TABLE horses
ADD INDEX idx_sire (sire),
ADD INDEX idx_dam (dam),
ADD INDEX idx_dam_sire (dam_sire);

-- ============================================================
-- 5. TABLE jockeys - Enrichissement
-- ============================================================

-- Modifier country pour permettre l'extraction depuis Zone-Turf
ALTER TABLE jockeys
MODIFY COLUMN country VARCHAR(100) NULL;

-- ============================================================
-- 6. TABLE trainers - Enrichissement
-- ============================================================

-- Modifier country pour permettre l'extraction depuis Zone-Turf
ALTER TABLE trainers
MODIFY COLUMN country VARCHAR(100) NULL;

-- ============================================================
-- 7. TABLE races - Colonnes calculées
-- ============================================================

-- S'assurer que actual_runners peut être NULL au départ
ALTER TABLE races
MODIFY COLUMN actual_runners INT NULL;

-- ============================================================
-- FIN DE LA MIGRATION
-- ============================================================

-- Vérification des colonnes ajoutées
SELECT 'Migration 001 terminée avec succès!' as status;
