<?php
/**
 * Script d'initialisation de la base de données maître des compagnies
 * Exécutez ce script une seule fois pour créer la structure
 */

require_once 'master_db.php';

try {
    // Connexion pour créer la base si elle n'existe pas
    $pdo_root = new PDO("mysql:host=" . MASTER_DB_HOST . ";charset=utf8", MASTER_DB_USER, MASTER_DB_PASS);
    $pdo_root->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    // Créer la base de données si elle n'existe pas
    $pdo_root->exec("CREATE DATABASE IF NOT EXISTS " . MASTER_DB_NAME . " CHARACTER SET utf8 COLLATE utf8_general_ci");
    echo "Base de données '" . MASTER_DB_NAME . "' créée avec succès.\n";
    
    // Se connecter à la base maître
    $pdo = getMasterConnection();
    if (!$pdo) {
        throw new Exception("Impossible de se connecter à la base maître");
    }
    
    // Créer la table des compagnies
    $sql = "CREATE TABLE IF NOT EXISTS companies (
        id INT AUTO_INCREMENT PRIMARY KEY,
        company_name VARCHAR(100) NOT NULL COMMENT 'Nom de la compagnie',
        company_code VARCHAR(50) UNIQUE NOT NULL COMMENT 'Code unique de la compagnie',
        db_name VARCHAR(100) NOT NULL COMMENT 'Nom de la base de données de la compagnie',
        db_host VARCHAR(100) DEFAULT 'localhost' COMMENT 'Serveur de base de données',
        db_user VARCHAR(100) NOT NULL COMMENT 'Utilisateur de la base de données',
        db_pass VARCHAR(255) COMMENT 'Mot de passe de la base de données',
        status ENUM('active', 'inactive') DEFAULT 'active' COMMENT 'Statut de la compagnie',
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
        INDEX idx_company_code (company_code),
        INDEX idx_status (status)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Table des compagnies avec leurs paramètres de connexion'";
    
    $pdo->exec($sql);
    echo "Table 'companies' créée avec succès.\n";
    
    // Insérer des exemples de compagnies (à adapter selon vos besoins)
    $companies = [
        [
            'company_name' => 'Compagnie Hiba',
            'company_code' => 'hiba',
            'db_name' => 'genivent_hiba',
            'db_host' => 'localhost',
            'db_user' => 'genivent_hiba',
            'db_pass' => 'genivent_hiba'
        ],
        [
            'company_name' => 'Compagnie SSH',
            'company_code' => 'ssh',
            'db_name' => 'ssh',
            'db_host' => 'localhost',
            'db_user' => 'root',
            'db_pass' => ''
        ]
    ];
    
    $stmt = $pdo->prepare("INSERT IGNORE INTO companies (company_name, company_code, db_name, db_host, db_user, db_pass) VALUES (?, ?, ?, ?, ?, ?)");
    
    foreach ($companies as $company) {
        $stmt->execute([
            $company['company_name'],
            $company['company_code'],
            $company['db_name'],
            $company['db_host'],
            $company['db_user'],
            $company['db_pass']
        ]);
    }
    
    echo "Exemples de compagnies ajoutés avec succès.\n";
    echo "\nConfiguration terminée ! Vous pouvez maintenant :\n";
    echo "1. Modifier les paramètres dans config/master_db.php\n";
    echo "2. Ajouter vos compagnies via l'interface d'administration\n";
    echo "3. Utiliser \$pdo_master dans vos scripts pour accéder aux données des compagnies\n";
    
} catch (Exception $e) {
    echo "Erreur : " . $e->getMessage() . "\n";
}
?>