<?php

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

/**
 * Emergency .env Fixer
 * Creates a .env file from .env.example if it's missing.
 */
error_reporting(E_ALL);
ini_set('display_errors', 1);

echo '<h1>Arreglo de Archivo .env</h1>';

$envFile = __DIR__.'/../.env';
$envExample = __DIR__.'/../.env.example';

if (file_exists($envFile)) {
    echo "<p style='color: green;'>✅ El archivo .env ya existe.</p>";
    echo '<p>Contenido actual (primeras líneas):</p>';
    $content = file_get_contents($envFile);
    echo '<pre>'.htmlspecialchars(substr($content, 0, 100)).'...</pre>';
} else {
    echo "<p style='color: orange;'>⚠️ El archivo .env NO existe.</p>";

    if (file_exists($envExample)) {
        echo '<p>Copiando desde .env.example...</p>';
        if (copy($envExample, $envFile)) {
            echo "<p style='color: green;'>✅ Archivo .env creado con éxito desde el ejemplo.</p>";

            // Generate Key if possible
            echo '<p>Intentando generar APP_KEY...</p>';
            try {
                require __DIR__.'/../vendor/autoload.php';
                $app = require_once __DIR__.'/../bootstrap/app.php';
                $app->make(Kernel::class)->bootstrap();
                Artisan::call('key:generate');
                echo "<p style='color: green;'>✅ APP_KEY generada.</p>";
            } catch (Exception $e) {
                echo "<p style='color: orange;'>⚠️ No se pudo auto-generar la key (falta vendor?), deberás hacerlo manualmente o subir un .env configurado.</p>";
            }
        } else {
            echo "<p style='color: red;'>❌ Error al copiar el archivo. Revisa permisos de carpeta.</p>";
        }
    } else {
        echo "<p style='color: red;'>❌ No se encontró .env.example tampoco. Debes subir un archivo .env manualmente.</p>";
    }
}

echo '<h2>Verificación de Permisos:</h2>';
$dir = __DIR__.'/../';
echo '<li>Directorio raíz: '.(is_writable($dir) ? 'Escritura Permitida ✅' : 'Escritura DENEGADA ❌').'</li>';
echo '<li>Carpeta storage: '.(is_writable($dir.'storage') ? 'Escritura Permitida ✅' : 'Escritura DENEGADA ❌').'</li>';
echo '<li>Carpeta bootstrap/cache: '.(is_writable($dir.'bootstrap/cache') ? 'Escritura Permitida ✅' : 'Escritura DENEGADA ❌').'</li>';

echo "<br><p><a href='debug-error.php'>Volver al Diagnóstico</a></p>";
