<?php
require_once 'config/conexion.php';

$mensaje = '';
$tipo_mensaje = 'error';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $email = $_POST['email'] ?? '';

    if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $mensaje = "Por favor, introduce un correo electrónico válido.";
    } else {
        $stmt = $conexion->prepare("SELECT id, nombre FROM usuarios WHERE email = ?");
        $stmt->bind_param("s", $email);
        $stmt->execute();
        $resultado = $stmt->get_result();

        if ($usuario = $resultado->fetch_assoc()) {
            // Generar token y fecha de expiración
            $token = bin2hex(random_bytes(32));
            $expiracion = date('Y-m-d H:i:s', strtotime('+1 hour'));

            $stmt_update = $conexion->prepare("UPDATE usuarios SET token_recuperacion = ?, token_expiracion = ? WHERE id = ?");
            $stmt_update->bind_param("ssi", $token, $expiracion, $usuario['id']);
            
            if ($stmt_update->execute()) {
                // Enviar correo de recuperación
                $enlace_recuperacion = "http://{$_SERVER['HTTP_HOST']}" . dirname($_SERVER['PHP_SELF']) . "/resetear_password.php?token={$token}";

                try {
                    $mail->setFrom(MAIL_FROM, MAIL_NAME);
                    $mail->addAddress($email, $usuario['nombre']);

                    $mail->isHTML(true);
                    $mail->Subject = 'Recuperación de Contraseña';
                    $mail->Body    = "Hola <b>{$usuario['nombre']}</b>,<br><br>Has solicitado restablecer tu contraseña. Haz clic en el siguiente enlace para continuar:<br><a href='{$enlace_recuperacion}'>Restablecer Contraseña</a><br><br>Si no solicitaste esto, puedes ignorar este correo.<br><br>Saludos.";

                    $mail->send();
                    $mensaje = "Se ha enviado un enlace de recuperación a tu correo.";
                    $tipo_mensaje = 'exito';
                } catch (Exception $e) {
                    $mensaje = "Hubo un error al enviar el correo: {$mail->ErrorInfo}";
                }
            } else {
                $mensaje = "Error al generar el token de recuperación.";
            }
        } else {
            // Por seguridad, no revelamos si el correo existe o no
            $mensaje = "Si tu correo está en nuestro sistema, recibirás un enlace de recuperación.";
            $tipo_mensaje = 'exito';
        }
        $stmt->close();
    }
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Recuperar Contraseña</title>
    <link rel="stylesheet" href="css/estilos.css">
    <style>
        .login-container { max-width: 400px; margin: 100px auto; padding: 30px; background: #fff; border-radius: 12px; box-shadow: 0 5px 20px rgba(0,0,0,0.1); }
        .login-container h2 { text-align: center; margin-bottom: 25px; }
        .form-group { margin-bottom: 20px; }
        .form-group label { display: block; margin-bottom: 8px; }
        .form-group input { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 8px; }
        .mensaje { padding: 15px; margin-bottom: 20px; border-radius: 8px; text-align: center; }
        .mensaje-exito { background-color: #d4edda; color: #155724; }
        .mensaje-error { background-color: #f8d7da; color: #721c24; }
    </style>
</head>
<body>
    <div class="login-container">
        <h2>Recuperar Contraseña</h2>
        <p style="text-align:center; margin-bottom: 20px; color: #666;">Introduce tu correo y te enviaremos un enlace para restablecer tu contraseña.</p>
        <?php if (!empty($mensaje)): ?>
            <div class="mensaje mensaje-<?php echo $tipo_mensaje; ?>">
                <?php echo $mensaje; ?>
            </div>
        <?php endif; ?>
        <form method="POST" action="">
            <div class="form-group">
                <label for="email">Correo Electrónico</label>
                <input type="email" id="email" name="email" required>
            </div>
            <button type="submit" class="btn btn-filtrar" style="width:100%;">Enviar Enlace</button>
        </form>
        <p style="text-align:center; margin-top:20px;">
            <a href="login.php">Volver a Iniciar Sesión</a>
        </p>
    </div>
</body>
</html>
