<?php
require_once '../config.php';

// Vérifier si la table training_sessions existe
$query = "SELECT name FROM sqlite_master WHERE type='table' AND name='training_sessions'";
$tableExists = fetchOne($query);

if (!$tableExists) {
    echo "La table training_sessions n'existe pas. Veuillez exécuter le script d'installation.";
    exit;
}

// Vérifier si la colonne max_attendees existe déjà
$query = "PRAGMA table_info(training_sessions)";
$columns = fetchAll($query);
$maxAttendeesExists = false;

foreach ($columns as $column) {
    if ($column['name'] === 'max_attendees') {
        $maxAttendeesExists = true;
        break;
    }
}

// Si la colonne n'existe pas, l'ajouter
if (!$maxAttendeesExists) {
    try {
        // En SQLite, nous devons créer une nouvelle table, copier les données, puis renommer
        $query = "
        BEGIN TRANSACTION;
        
        -- Créer une table temporaire avec la nouvelle structure
        CREATE TABLE training_sessions_new (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            title TEXT NOT NULL,
            day_of_week INTEGER NOT NULL,
            start_time TIME NOT NULL,
            end_time TIME NOT NULL,
            coach_id INTEGER,
            category_id INTEGER,
            location TEXT,
            max_attendees INTEGER,
            notes TEXT,
            created_by INTEGER,
            created_at DATETIME,
            FOREIGN KEY (coach_id) REFERENCES coaches(id),
            FOREIGN KEY (category_id) REFERENCES categories(id),
            FOREIGN KEY (created_by) REFERENCES users(id)
        );
        
        -- Copier les données de l'ancienne table vers la nouvelle
        INSERT INTO training_sessions_new (
            id, title, day_of_week, start_time, end_time, 
            coach_id, category_id, location, notes, created_by, created_at
        )
        SELECT 
            id, title, day_of_week, start_time, end_time, 
            coach_id, category_id, location, notes, created_by, created_at
        FROM training_sessions;
        
        -- Supprimer l'ancienne table
        DROP TABLE training_sessions;
        
        -- Renommer la nouvelle table
        ALTER TABLE training_sessions_new RENAME TO training_sessions;
        
        COMMIT;
        ";
        
        executeQuery($query);
        
        echo "<div style='font-family: Arial, sans-serif; padding: 20px;'>";
        echo "<h1>Mise à jour de la table training_sessions</h1>";
        echo "<div style='background-color: #d4edda; color: #155724; padding: 15px; border-radius: 4px; margin-bottom: 20px;'>";
        echo "<strong>Succès :</strong> La colonne max_attendees a été ajoutée à la table training_sessions.";
        echo "</div>";
        
        // Vérifier la structure mise à jour
        $query = "PRAGMA table_info(training_sessions)";
        $updatedColumns = fetchAll($query);
        
        echo "<h2>Structure mise à jour de la table</h2>";
        echo "<table border='1' cellpadding='5' cellspacing='0' style='border-collapse: collapse;'>";
        echo "<tr style='background-color: #f2f2f2;'><th>ID</th><th>Nom</th><th>Type</th><th>Not Null</th><th>Valeur par défaut</th><th>Clé primaire</th></tr>";
        
        foreach ($updatedColumns as $column) {
            echo "<tr>";
            echo "<td>{$column['cid']}</td>";
            echo "<td>{$column['name']}</td>";
            echo "<td>{$column['type']}</td>";
            echo "<td>" . ($column['notnull'] ? 'Oui' : 'Non') . "</td>";
            echo "<td>" . (isset($column['dflt_value']) ? $column['dflt_value'] : 'NULL') . "</td>";
            echo "<td>" . ($column['pk'] ? 'Oui' : 'Non') . "</td>";
            echo "</tr>";
        }
        
        echo "</table>";
        
        echo "<p><a href='../training/add.php' style='display: inline-block; padding: 10px 15px; background-color: #007bff; color: white; text-decoration: none; border-radius: 4px;'>Retour à l'ajout de séances d'entraînement</a></p>";
        echo "</div>";
    } catch (Exception $e) {
        echo "<div style='font-family: Arial, sans-serif; padding: 20px;'>";
        echo "<h1>Erreur lors de la mise à jour de la table training_sessions</h1>";
        echo "<div style='background-color: #f8d7da; color: #721c24; padding: 15px; border-radius: 4px; margin-bottom: 20px;'>";
        echo "<strong>Erreur :</strong> " . $e->getMessage();
        echo "</div>";
        echo "<p><a href='../index.php' style='display: inline-block; padding: 10px 15px; background-color: #007bff; color: white; text-decoration: none; border-radius: 4px;'>Retour à l'accueil</a></p>";
        echo "</div>";
    }
} else {
    echo "<div style='font-family: Arial, sans-serif; padding: 20px;'>";
    echo "<h1>Mise à jour de la table training_sessions</h1>";
    echo "<div style='background-color: #cce5ff; color: #004085; padding: 15px; border-radius: 4px; margin-bottom: 20px;'>";
    echo "<strong>Information :</strong> La colonne max_attendees existe déjà dans la table training_sessions.";
    echo "</div>";
    echo "<p><a href='../training/add.php' style='display: inline-block; padding: 10px 15px; background-color: #007bff; color: white; text-decoration: none; border-radius: 4px;'>Retour à l'ajout de séances d'entraînement</a></p>";
    echo "</div>";
}
?>
