<?php
/**
 * Instalador Ultra Básico - Paso a Paso
 * Para resolver problemas de creación de tablas
 * Desarrollado por U-Site.app
 * Fecha: 14 de noviembre de 2025
 */

error_reporting(E_ALL);
ini_set('display_errors', 1);

if (file_exists('.installation_completed')) {
    header('Location: login.php');
    exit('Sistema ya instalado');
}

$step = $_GET['step'] ?? 'form';
$errors = [];
$success = [];
$adminPassword = bin2hex(random_bytes(6)); // 12 caracteres

if ($step === 'install' && $_POST) {
    $dbHost = trim($_POST['db_host'] ?? 'localhost');
    $dbPort = trim($_POST['db_port'] ?? '3306');
    $dbName = trim($_POST['db_name'] ?? '');
    $dbUser = trim($_POST['db_user'] ?? '');
    $dbPass = $_POST['db_pass'] ?? '';
    
    if (empty($dbName)) $errors[] = "BD requerida";
    if (empty($dbUser)) $errors[] = "Usuario requerido";
    if (empty($dbPass)) $errors[] = "Contraseña requerida";
    
    if (empty($errors)) {
        try {
            $dsn = "mysql:host={$dbHost};port={$dbPort};dbname={$dbName};charset=utf8mb4";
            $pdo = new PDO($dsn, $dbUser, $dbPass, [
                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
            ]);
            $success[] = "✅ Conectado a '{$dbName}'";
            
            // Crear tabla users primero
            $sql = "CREATE TABLE IF NOT EXISTS users (
                id INT AUTO_INCREMENT PRIMARY KEY,
                phone_number VARCHAR(20) UNIQUE NOT NULL,
                name VARCHAR(100),
                status ENUM('active', 'inactive') DEFAULT 'active',
                created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
            )";
            
            $pdo->exec($sql);
            
            // Verificar que se creó
            try {
                $result = $pdo->query("SELECT COUNT(*) FROM users");
                $success[] = "✅ Tabla 'users' creada y funcional";
            } catch (Exception $e) {
                $errors[] = "❌ Tabla users no funciona: " . $e->getMessage();
            }
            
            // Crear tabla system_config
            $sql = "CREATE TABLE IF NOT EXISTS system_config (
                id INT AUTO_INCREMENT PRIMARY KEY,
                config_key VARCHAR(100) UNIQUE NOT NULL,
                config_value TEXT,
                created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
            )";
            
            $pdo->exec($sql);
            
            // Verificar
            try {
                $result = $pdo->query("SELECT COUNT(*) FROM system_config");
                $success[] = "✅ Tabla 'system_config' creada y funcional";
            } catch (Exception $e) {
                $errors[] = "❌ Tabla system_config no funciona: " . $e->getMessage();
            }
            
            // Solo insertar datos si no hay errores
            if (empty($errors)) {
                // Insertar configuración básica
                $configSql = "INSERT IGNORE INTO system_config (config_key, config_value) VALUES
                ('app_installed', '1'),
                ('install_date', NOW()),
                ('business_name', 'Mi Empresa'),
                ('admin_user', 'admin')";
                
                try {
                    $pdo->exec($configSql);
                    $success[] = "✅ Configuración inicial insertada";
                } catch (Exception $e) {
                    $errors[] = "⚠️ Error insertando config: " . $e->getMessage();
                }
                
                // Actualizar config.php
                if (file_exists('config/config.php')) {
                    $config = file_get_contents('config/config.php');
                    
                    $config = preg_replace("/define\('DB_HOST',\s*'[^']*'\);/", "define('DB_HOST', '$dbHost');", $config);
                    $config = preg_replace("/define\('DB_PORT',\s*'[^']*'\);/", "define('DB_PORT', '$dbPort');", $config);
                    $config = preg_replace("/define\('DB_NAME',\s*'[^']*'\);/", "define('DB_NAME', '$dbName');", $config);
                    $config = preg_replace("/define\('DB_USER',\s*'[^']*'\);/", "define('DB_USER', '$dbUser');", $config);
                    $config = preg_replace("/define\('DB_PASS',\s*'[^']*'\);/", "define('DB_PASS', '$dbPass');", $config);
                    $config = preg_replace("/define\('ADMIN_PASSWORD',\s*'[^']*'\);/", "define('ADMIN_PASSWORD', '" . password_hash($adminPassword, PASSWORD_DEFAULT) . "');", $config);
                    
                    file_put_contents('config/config.php', $config);
                    $success[] = "✅ config.php actualizado";
                }
                
                // Verificar que todo funciona
                try {
                    $userCount = $pdo->query("SELECT COUNT(*) FROM users")->fetchColumn();
                    $configCount = $pdo->query("SELECT COUNT(*) FROM system_config")->fetchColumn();
                    $success[] = "✅ Verificación final: {$userCount} usuarios, {$configCount} configs";
                    
                    // Marcar como instalado
                    file_put_contents('.installation_completed', date('Y-m-d H:i:s'));
                    file_put_contents('CREDENCIALES_BASICO.txt', "USUARIO: admin\nCONTRASEÑA: {$adminPassword}\nFECHA: " . date('Y-m-d H:i:s'));
                    
                    $success[] = "🎉 Instalación básica completada";
                    $step = 'completed';
                    
                } catch (Exception $e) {
                    $errors[] = "❌ Error en verificación final: " . $e->getMessage();
                }
            }
            
        } catch (PDOException $e) {
            $errors[] = "❌ Error de conexión: " . $e->getMessage();
        }
    }
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>⚡ Instalador Ultra Básico</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <style>
        body { background: linear-gradient(45deg, #667eea, #764ba2); min-height: 100vh; }
        .card { background: rgba(255,255,255,0.95); border-radius: 15px; box-shadow: 0 10px 30px rgba(0,0,0,0.3); }
    </style>
</head>
<body class="d-flex align-items-center">
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-lg-8">
                <div class="card p-4">
                    
                    <?php if ($step === 'form'): ?>
                    <div class="text-center mb-4">
                        <h2>⚡ Instalador Ultra Básico</h2>
                        <p class="text-muted">Solo crea las tablas esenciales paso a paso</p>
                    </div>
                    
                    <div class="alert alert-info">
                        <h6><i class="fas fa-info-circle me-2"></i>Este instalador:</h6>
                        <ul class="mb-0">
                            <li>✅ Crea solo 2 tablas esenciales: <code>users</code> y <code>system_config</code></li>
                            <li>✅ Verifica cada paso antes de continuar</li>
                            <li>✅ Proceso ultra simplificado</li>
                            <li>✅ Ideal para resolver problemas de creación de tablas</li>
                        </ul>
                    </div>
                    
                    <form method="POST" action="?step=install">
                        <div class="row g-3">
                            <div class="col-md-6">
                                <label class="form-label">Host</label>
                                <input type="text" class="form-control" name="db_host" value="localhost" required>
                            </div>
                            <div class="col-md-6">
                                <label class="form-label">Puerto</label>
                                <input type="text" class="form-control" name="db_port" value="3306" required>
                            </div>
                            <div class="col-md-6">
                                <label class="form-label">Base de datos</label>
                                <input type="text" class="form-control" name="db_name" placeholder="usite_whatsapp_bot" required>
                            </div>
                            <div class="col-md-6">
                                <label class="form-label">Usuario</label>
                                <input type="text" class="form-control" name="db_user" required>
                            </div>
                            <div class="col-12">
                                <label class="form-label">Contraseña</label>
                                <input type="password" class="form-control" name="db_pass" required>
                            </div>
                        </div>
                        
                        <div class="text-center mt-4">
                            <div class="alert alert-success">
                                <strong>Contraseña de admin que se generará:</strong><br>
                                <code><?= $adminPassword ?></code>
                            </div>
                            <button type="submit" class="btn btn-primary btn-lg">
                                ⚡ Instalación Ultra Básica
                            </button>
                        </div>
                    </form>
                    
                    <?php elseif ($step === 'install'): ?>
                    <div class="text-center mb-4">
                        <h2>⚙️ Instalando paso a paso...</h2>
                    </div>
                    
                    <?php if (!empty($errors)): ?>
                    <div class="alert alert-danger">
                        <h5>❌ Errores:</h5>
                        <?php foreach ($errors as $error): ?>
                        <div><?= htmlspecialchars($error) ?></div>
                        <?php endforeach; ?>
                        <hr>
                        <a href="?step=form" class="btn btn-outline-danger">Reintentar</a>
                    </div>
                    <?php endif; ?>
                    
                    <?php if (!empty($success)): ?>
                    <div class="alert alert-success">
                        <h5>✅ Progreso:</h5>
                        <?php foreach ($success as $msg): ?>
                        <div><?= htmlspecialchars($msg) ?></div>
                        <?php endforeach; ?>
                    </div>
                    <?php endif; ?>
                    
                    <?php if ($step !== 'completed' && !empty($errors)): ?>
                    <div class="alert alert-warning">
                        <h6>💡 Sugerencias para resolver errores:</h6>
                        <ul class="mb-0">
                            <li>Verifica que la base de datos existe</li>
                            <li>Confirma que el usuario tiene permisos ALL en la BD</li>
                            <li>Prueba conectarte manualmente con phpMyAdmin</li>
                            <li>Si persiste, contacta soporte con estos mensajes</li>
                        </ul>
                    </div>
                    <?php endif; ?>
                    
                    <?php elseif ($step === 'completed'): ?>
                    <div class="text-center mb-4">
                        <h2 class="text-success">🎉 ¡Instalación Básica Exitosa!</h2>
                        <p class="text-muted">Sistema mínimo funcional instalado</p>
                    </div>
                    
                    <div class="row g-4">
                        <div class="col-md-6">
                            <h5>🔑 Credenciales</h5>
                            <div class="alert alert-success">
                                <strong>Usuario:</strong> admin<br>
                                <strong>Contraseña:</strong> <code><?= $adminPassword ?></code><br>
                                <small>Guardadas en: CREDENCIALES_BASICO.txt</small>
                            </div>
                        </div>
                        <div class="col-md-6">
                            <h5>🚀 Siguiente</h5>
                            <div class="d-grid gap-2">
                                <a href="test.php" class="btn btn-success">Probar Sistema</a>
                                <a href="index.php" class="btn btn-primary">Panel Admin</a>
                                <a href="login.php" class="btn btn-outline-info">Login</a>
                            </div>
                        </div>
                    </div>
                    
                    <div class="alert alert-info mt-4">
                        <h6>📋 Lo que se instaló:</h6>
                        <ul class="mb-0">
                            <li>✅ Tabla <code>users</code> - Para gestión de usuarios</li>
                            <li>✅ Tabla <code>system_config</code> - Para configuración</li>
                            <li>✅ Configuración básica del sistema</li>
                            <li>✅ Credenciales de administrador</li>
                        </ul>
                        <hr>
                        <small><strong>Nota:</strong> Puedes agregar más funcionalidades desde el panel de administración.</small>
                    </div>
                    <?php endif; ?>
                    
                </div>
            </div>
        </div>
    </div>
</body>
</html>