<?php
// Script pour initialiser les tables de référentiels
require_once __DIR__ . '/../app/helpers.php';

spl_autoload_register(function ($class) {
    $prefix = 'App\\';
    $baseDir = __DIR__ . '/../app/';
    if (strncmp($prefix, $class, strlen($prefix)) !== 0) return;
    $relative = substr($class, strlen($prefix));
    $file = $baseDir . str_replace('\\', '/', $relative) . '.php';
    if (file_exists($file)) require $file;
});

use App\Core\Database;

try {
    $pdo = Database::pdo();
    echo "✅ Connexion à la base de données réussie\n";
    
    // Lire et exécuter le script SQL
    $sql = file_get_contents(__DIR__ . '/referentials.sql');
    
    // Diviser en requêtes individuelles
    $queries = array_filter(
        array_map('trim', explode(';', $sql)), 
        function($query) { return !empty($query) && !preg_match('/^\s*--/', $query); }
    );
    
    foreach ($queries as $query) {
        if (trim($query)) {
            try {
                $pdo->exec($query);
                echo "✅ Exécuté : " . substr(trim($query), 0, 50) . "...\n";
            } catch (Exception $e) {
                echo "❌ Erreur : " . $e->getMessage() . "\n";
                echo "Requête : " . trim($query) . "\n\n";
            }
        }
    }
    
    echo "\n🎉 Script terminé avec succès !\n";
    
    // Vérifier que les tables existent
    $tables = ['locations', 'liaisons', 'sites', 'incident_causes', 'priority_levels', 'equipments', 'maintenance_types'];
    echo "\n📋 Vérification des tables :\n";
    
    foreach ($tables as $table) {
        try {
            $stmt = $pdo->query("SELECT COUNT(*) FROM `$table`");
            $count = $stmt->fetchColumn();
            echo "✅ Table `$table` : $count enregistrements\n";
        } catch (Exception $e) {
            echo "❌ Table `$table` : " . $e->getMessage() . "\n";
        }
    }
    
} catch (Exception $e) {
    echo "❌ Erreur : " . $e->getMessage() . "\n";
    exit(1);
}
?>