<?php
// Configuración
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');

try {
    // 1. Conectar sin seleccionar DB para crearla
    $pdo = new PDO("mysql:host=".DB_HOST, DB_USER, DB_PASS);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    echo "🔌 Conectado a MySQL Server...\n";

    // 2. Crear Base de Datos
    $pdo->exec("CREATE DATABASE IF NOT EXISTS klkapp_db COLLATE utf8mb4_unicode_ci");
    echo "✅ Base de datos 'klkapp_db' verificada/creada.\n";

    // 3. Seleccionar DB
    $pdo->exec("USE klkapp_db");

    // 4. Crear Tablas
    $sql_users = "CREATE TABLE IF NOT EXISTS users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        username VARCHAR(50) UNIQUE NOT NULL,
        email VARCHAR(100) UNIQUE NOT NULL,
        password_hash VARCHAR(255) NOT NULL,
        avatar VARCHAR(255) DEFAULT 'default.png',
        diamonds INT DEFAULT 0,
        status ENUM('active', 'banned') DEFAULT 'active',
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    )";
    $pdo->exec($sql_users);
    echo "✅ Tabla 'users' lista.\n";

    $sql_config = "CREATE TABLE IF NOT EXISTS app_config (
        id INT AUTO_INCREMENT PRIMARY KEY,
        setting_key VARCHAR(50) UNIQUE NOT NULL,
        setting_value TEXT,
        description VARCHAR(255)
    )";
    $pdo->exec($sql_config);
    echo "✅ Tabla 'app_config' lista.\n";

    // 5. Insertar Configuración por Defecto
    $sql_insert_config = "INSERT IGNORE INTO app_config (setting_key, setting_value, description) VALUES
        ('maintenance_mode', 'false', 'Mode Mantenimiento'),
        ('min_version_android', '1.0.0', 'Version Min Android'),
        ('min_version_ios', '1.0.0', 'Version Min iOS')";
    $pdo->exec($sql_insert_config);
    echo "✅ Configuración inicial insertada.\n";

    echo "\n🚀 INSTALACIÓN COMPLETADA EXITOSAMENTE.";

} catch(PDOException $e) {
    die("❌ Error: " . $e->getMessage());
}
?>
