<?php
// Script de debugging para el sistema de recuperación de contraseña
session_start();

echo "<h2>Debug - Sistema de Recuperación de Contraseña</h2>";

// Incluir configuración centralizada
require_once 'config/email-config.php';

// Verificar conexión a base de datos
echo "<h3>1. Verificación de Base de Datos:</h3>";

try {
    $pdo = getEmailDatabaseConnection();
    echo "<p style='color: green;'>✓ Conexión a base de datos exitosa</p>";
    
    // Verificar si la tabla templeado existe y tiene datos
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM templeado");
    $result = $stmt->fetch(PDO::FETCH_ASSOC);
    echo "<p>Total de empleados en la base de datos: " . $result['total'] . "</p>";
    
    // Mostrar algunos empleados con email
    $stmt = $pdo->query("SELECT codempleado, nombres, apellidoPaterno, email FROM templeado WHERE email IS NOT NULL AND email != '' LIMIT 5");
    $empleados = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (count($empleados) > 0) {
        echo "<p style='color: green;'>✓ Empleados con email encontrados:</p>";
        echo "<ul>";
        foreach ($empleados as $emp) {
            echo "<li>" . $emp['nombres'] . " " . $emp['apellidoPaterno'] . " - " . $emp['email'] . "</li>";
        }
        echo "</ul>";
    } else {
        echo "<p style='color: red;'>✗ No se encontraron empleados con email</p>";
    }
    
} catch(PDOException $e) {
    echo "<p style='color: red;'>✗ Error de conexión a la base de datos: " . $e->getMessage() . "</p>";
}

// Verificar función mail
echo "<h3>2. Verificación de Función Mail:</h3>";
if (function_exists('mail')) {
    echo "<p style='color: green;'>✓ La función mail() está disponible</p>";
    echo "<p>Configuración actual:</p>";
    echo "<ul>";
    echo "<li>sendmail_path: " . ini_get('sendmail_path') . "</li>";
    echo "<li>SMTP: " . ini_get('SMTP') . "</li>";
    echo "<li>smtp_port: " . ini_get('smtp_port') . "</li>";
    echo "</ul>";
} else {
    echo "<p style='color: red;'>✗ La función mail() NO está disponible</p>";
}

// Probar envío de email
echo "<h3>3. Prueba de Envío de Email:</h3>";
$testEmail = "test@example.com";
$subject = "Prueba SIGVEM";
$message = "Este es un mensaje de prueba del sistema SIGVEM.";
$headers = "From: noreply@localhost\r\nContent-Type: text/html; charset=UTF-8\r\n";

if (mail($testEmail, $subject, $message, $headers)) {
    echo "<p style='color: green;'>✓ Email de prueba enviado correctamente</p>";
} else {
    echo "<p style='color: red;'>✗ Error al enviar email de prueba</p>";
    $error = error_get_last();
    if ($error) {
        echo "<p>Último error: " . $error['message'] . "</p>";
    }
}

// Verificar archivos del sistema
echo "<h3>4. Verificación de Archivos:</h3>";
$files = [
    'actions/forgot-password.php' => 'Script de recuperación',
    'reset-password.php' => 'Página de restablecimiento',
    'index.php' => 'Página principal'
];

foreach ($files as $file => $desc) {
    if (file_exists($file)) {
        echo "<p style='color: green;'>✓ $desc ($file)</p>";
    } else {
        echo "<p style='color: red;'>✗ $desc ($file) - Archivo no encontrado</p>";
    }
}

// Verificar permisos de escritura
echo "<h3>5. Verificación de Permisos:</h3>";
$writable_dirs = [
    '.' => 'Directorio actual',
    'config' => 'Directorio de configuración'
];

foreach ($writable_dirs as $dir => $desc) {
    if (is_writable($dir)) {
        echo "<p style='color: green;'>✓ $desc es escribible</p>";
    } else {
        echo "<p style='color: red;'>✗ $desc no es escribible</p>";
    }
}

echo "<hr>";
echo "<h3>Instrucciones para Solucionar Problemas:</h3>";
echo "<ol>";
echo "<li><strong>Si no hay empleados con email:</strong> Agregue emails a la tabla templeado</li>";
echo "<li><strong>Si mail() no funciona:</strong> Configure sendmail o use un servidor SMTP</li>";
echo "<li><strong>Para desarrollo local:</strong> Los enlaces se guardarán en password_reset_links.log</li>";
echo "<li><strong>Para producción:</strong> Configure un servidor SMTP real</li>";
echo "</ol>";

echo "<p><a href='index.php'>← Volver al Login</a></p>";
?>
