<?php

use Illuminate\Contracts\Console\Kernel;
use Illuminate\Support\Facades\Artisan;

/**
 * ULTRA Emergency Web Installer
 * Designed to work even if Laravel's main routing is broken.
 */
error_reporting(E_ALL);
ini_set('display_errors', 1);

echo '<h1>Instalador Maestrísimo Iniciado (Sin Token)</h1>';

// AUTO-FIX: Create platform_check.php if missing to satisfy autoloader
$platformCheckPath = __DIR__.'/../vendor/composer/platform_check.php';
if (! file_exists($platformCheckPath)) {
    echo '<p>Reparando Autoloader (creando platform_check.php vacío)...</p>';
    @mkdir(dirname($platformCheckPath), 0755, true);
    @file_put_contents($platformCheckPath, '<?php // Dummy file to bypass version check');
}

try {
    echo '<p>1. Cargando Autoload...</p>';
    require __DIR__.'/../vendor/autoload.php';

    echo '<p>2. Cargando Aplicación...</p>';
    $app = require_once __DIR__.'/../bootstrap/app.php';

    echo '<p>3. Iniciando Kernel...</p>';
    $kernel = $app->make(Kernel::class);
    $kernel->bootstrap();

    echo '<h2>4. EJECUTANDO MIGRACIONES...</h2>';
    $status = Artisan::call('migrate:fresh', [
        '--force' => true,
        '--seed' => true,
    ]);

    echo "<pre>Resultado: \n".Artisan::output().'</pre>';

    echo '<h2>5. LIMPIANDO TODO...</h2>';
    Artisan::call('optimize:clear');
    Artisan::call('storage:link');

    echo "<h2 style='color: green;'>¡SISTEMA INSTALADO CON ÉXITO!</h2>";
    echo "<p>Ya deberías poder entrar aquí: <a href='/'>ENTRAR AL SISTEMA</a></p>";

} catch (Throwable $e) {
    echo "<h2 style='color: red;'>FALLÓ ALGO CRÍTICO</h2>";
    echo '<p>Error: '.$e->getMessage().'</p>';
    echo '<p>Archivo: '.$e->getFile().' (Línea '.$e->getLine().')</p>';
    echo '<pre>'.$e->getTraceAsString().'</pre>';
}
