<?php
/**
 * Database Seed Script
 * Execută seed.sql pentru a popula baza de date cu date de test
 */

require_once __DIR__ . '/../config/database.php';

$seedFile = __DIR__ . '/seed.sql';

if (!file_exists($seedFile)) {
    die("Fișierul seed.sql nu a fost găsit!\n");
}

try {
    $pdo = new PDO(
        "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=utf8mb4",
        DB_USER,
        DB_PASS,
        [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            PDO::ATTR_EMULATE_PREPARES => false
        ]
    );

    echo "Conectat la baza de date: " . DB_NAME . "\n";
    echo "Încep popularea bazei de date...\n\n";

    // Citește conținutul fișierului seed.sql
    $sql = file_get_contents($seedFile);
    
    // Elimină comentariile SQL care nu sunt necesare pentru execuție
    // (păstrăm doar comenzile SQL)
    
    // Execută SQL-ul
    // Folosim exec() pentru că seed.sql conține multiple statements
    $pdo->exec($sql);
    
    echo "✓ Baza de date a fost populată cu succes!\n\n";
    
    // Verifică datele inserate
    $tables = [
        'admins' => 'Administratori',
        'categories' => 'Categorii',
        'suppliers' => 'Furnizori',
        'products' => 'Produse',
        'users' => 'Utilizatori',
        'b2b_groups' => 'Grupuri B2B',
        'addresses' => 'Adrese',
        'coupons' => 'Cupoane',
        'orders' => 'Comenzi',
        'reviews' => 'Recenzii',
        'wishlist' => 'Listă de dorințe',
        'loyalty_points' => 'Puncte loialitate'
    ];
    
    echo "Rezumat date inserate:\n";
    echo str_repeat("-", 50) . "\n";
    
    foreach ($tables as $table => $label) {
        try {
            $count = $pdo->query("SELECT COUNT(*) as count FROM `{$table}`")->fetch()['count'];
            echo sprintf("%-25s: %d înregistrări\n", $label, $count);
        } catch (PDOException $e) {
            echo sprintf("%-25s: Eroare - %s\n", $label, $e->getMessage());
        }
    }
    
    echo "\n";
    echo "Date de autentificare:\n";
    echo str_repeat("-", 50) . "\n";
    echo "Admin: admin@cartzilla-shop.com / password\n";
    echo "Manager: manager@cartzilla-shop.com / password\n";
    echo "Utilizator test: ion.popescu@example.com / password\n";
    echo "\n";
    echo "✓ Gata! Baza de date este pregătită pentru utilizare.\n";
    
} catch (PDOException $e) {
    die("Eroare la popularea bazei de date: " . $e->getMessage() . "\n");
}
?>
