<?php
/**
 * Diagnóstico de capacidades de imagen del servidor
 * Subir a rancho.alexisrdz.com/ y abrir en navegador.
 * ELIMINAR después de usar.
 */
header('Content-Type: text/html; charset=utf-8');
echo '<html><body style="font-family:monospace;padding:2em;background:#1a1a2e;color:#e0e0e0">';
echo '<h1 style="color:#4ecdc4">Diagnóstico de Imágenes</h1>';

// PHP version
echo '<h2>PHP</h2>';
echo '<p>Versión: <strong>' . PHP_VERSION . '</strong></p>';
echo '<p>upload_max_filesize: <strong>' . ini_get('upload_max_filesize') . '</strong></p>';
echo '<p>post_max_size: <strong>' . ini_get('post_max_size') . '</strong></p>';
echo '<p>memory_limit: <strong>' . ini_get('memory_limit') . '</strong></p>';
echo '<p>max_file_uploads: <strong>' . ini_get('max_file_uploads') . '</strong></p>';

// GD
echo '<h2>GD Extension</h2>';
if (extension_loaded('gd')) {
    echo '<p style="color:#4ecdc4">✓ GD cargada</p>';
    $gdInfo = gd_info();
    echo '<table border="1" cellpadding="5" style="border-collapse:collapse;color:#e0e0e0">';
    foreach ($gdInfo as $k => $v) {
        $val = is_bool($v) ? ($v ? '✓ Sí' : '✗ No') : $v;
        $color = ($v === true) ? '#4ecdc4' : (($v === false) ? '#ff6b6b' : '#e0e0e0');
        echo "<tr><td>$k</td><td style='color:$color'>$val</td></tr>";
    }
    echo '</table>';
} else {
    echo '<p style="color:#ff6b6b">✗ GD NO está cargada — las imágenes no se pueden procesar</p>';
}

// EXIF
echo '<h2>EXIF Extension</h2>';
if (function_exists('exif_read_data')) {
    echo '<p style="color:#4ecdc4">✓ exif_read_data disponible</p>';
} else {
    echo '<p style="color:#ffd93d">⚠ exif_read_data NO disponible — orientación de fotos no se corregirá (no es crítico)</p>';
}

// Directorios de upload
echo '<h2>Directorios de Upload</h2>';
$dirs = ['uploads/', 'uploads/photos/', 'uploads/evidence/', 'uploads/documents/'];
foreach ($dirs as $d) {
    $full = __DIR__ . '/' . $d;
    $exists = is_dir($full);
    $writable = $exists ? is_writable($full) : false;
    $status = !$exists ? '<span style="color:#ff6b6b">✗ No existe</span>' 
            : ($writable ? '<span style="color:#4ecdc4">✓ Existe y escribible</span>' 
                         : '<span style="color:#ff6b6b">✗ Existe pero NO escribible</span>');
    echo "<p>$d → $status</p>";
}

// Temp dir
echo '<h2>Directorio Temporal</h2>';
$tmpDir = sys_get_temp_dir();
echo '<p>sys_get_temp_dir(): <strong>' . $tmpDir . '</strong></p>';
echo '<p>Escribible: ' . (is_writable($tmpDir) ? '<span style="color:#4ecdc4">✓ Sí</span>' : '<span style="color:#ff6b6b">✗ No</span>') . '</p>';

// Test quick write
echo '<h2>Test de Escritura</h2>';
$testFile = __DIR__ . '/uploads/photos/_test_write_' . time() . '.txt';
$testDir = dirname($testFile);
if (!is_dir($testDir)) {
    $mkResult = @mkdir($testDir, 0775, true);
    echo '<p>Crear directorio uploads/photos/: ' . ($mkResult ? '✓' : '✗ FALLÓ') . '</p>';
}
$wrote = @file_put_contents($testFile, 'test');
if ($wrote !== false) {
    echo '<p style="color:#4ecdc4">✓ Escritura en uploads/photos/ exitosa</p>';
    @unlink($testFile);
} else {
    echo '<p style="color:#ff6b6b">✗ NO se puede escribir en uploads/photos/</p>';
}

// Buscar ImageProcessor
echo '<h2>ImageProcessor</h2>';
$privatePaths = [
    dirname(__DIR__) . '/private/app/Services/ImageProcessor.php',
    dirname(dirname(__DIR__)) . '/private/app/Services/ImageProcessor.php',
];
$found = false;
foreach ($privatePaths as $p) {
    if (file_exists($p)) {
        echo '<p style="color:#4ecdc4">✓ Encontrado en: ' . $p . '</p>';
        $found = true;
        break;
    }
}
if (!$found) {
    echo '<p style="color:#ff6b6b">✗ ImageProcessor.php NO encontrado</p>';
    echo '<p>Buscado en:</p><ul>';
    foreach ($privatePaths as $p) {
        echo '<li>' . $p . '</li>';
    }
    echo '</ul>';
}

// Error log
echo '<h2>Últimos Errores PHP</h2>';
$logPaths = [
    dirname(__DIR__) . '/private/storage/logs/php_errors.log',
    dirname(dirname(__DIR__)) . '/private/storage/logs/php_errors.log',
];
$logFound = false;
foreach ($logPaths as $lp) {
    if (file_exists($lp)) {
        $lines = file($lp);
        $last = array_slice($lines, -20);
        echo '<pre style="background:#16213e;padding:1em;border-radius:8px;overflow:auto;font-size:12px;max-height:400px">';
        echo htmlspecialchars(implode('', $last));
        echo '</pre>';
        $logFound = true;
        break;
    }
}
if (!$logFound) {
    echo '<p style="color:#ffd93d">No se encontró archivo de log</p>';
}

echo '<hr><p style="color:#ff6b6b;font-weight:bold">⚠ ELIMINA este archivo después de usarlo (check-images.php)</p>';
echo '</body></html>';
