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

$mensaje = null;

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    csrfValidarOMorir();
    $correo = trim($_POST['correo'] ?? '');

    if ($correo) {
        $pdo = db();
        $stmt = $pdo->prepare("SELECT id, nombre_completo FROM usuarios WHERE correo = ? AND activo = 1");
        $stmt->execute([$correo]);
        $u = $stmt->fetch();

        if ($u) {
            $token = bin2hex(random_bytes(32));
            $pdo->prepare("
                INSERT INTO password_resets (usuario_id, token_hash, expira_en)
                VALUES (?, ?, ?)
            ")->execute([
                $u['id'], hash('sha256', $token),
                date('Y-m-d H:i:s', time() + 3600), // 1 hora de validez
            ]);

            $enlace = (!empty($_SERVER['HTTPS']) ? 'https://' : 'http://') . $_SERVER['HTTP_HOST']
                    . dirname($_SERVER['SCRIPT_NAME']) . '/restablecer_password.php?token=' . $token;

            $asunto = 'Restablecer contraseña — Fondo Documental SGC';
            $cuerpo = "Hola {$u['nombre_completo']},\n\nSolicitaste restablecer tu contraseña. " .
                      "Este enlace es válido por 1 hora:\n\n{$enlace}\n\n" .
                      "Si no fuiste tú, ignora este mensaje.";
            @mail($correo, $asunto, $cuerpo, "From: no-responder@fondodocumental.local\r\n");
            // NOTA: mail() depende de que el servidor tenga configurado un MTA
            // (sendmail/Postfix) o php.ini apuntando a un relay SMTP. En hosting
            // compartido esto suele funcionar, pero si no llegan los correos,
            // reemplazar este bloque por PHPMailer + SMTP con credenciales reales.
        }

        // Mismo mensaje exista o no la cuenta — evita que alguien use este
        // formulario para averiguar qué correos están registrados.
        $mensaje = 'Si el correo está registrado, te enviamos un enlace para restablecer tu contraseña.';
    }
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Recuperar contraseña — Fondo Documental SGC</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet">
<link href="estilos.css" rel="stylesheet">
</head>
<body class="pagina-auth">
<div class="container">
<div class="card card-login">
    <div class="card-body">
        <p class="fw-semibold mb-1" style="font-size:.95rem">Recuperar contraseña</p>
        <p class="text-muted mb-4" style="font-size:.78rem">Te enviaremos un enlace para crear una nueva.</p>

        <?php if ($mensaje): ?>
            <div class="alert alert-success py-2 mb-3"><i class="bi bi-check-circle me-1"></i> <?= htmlspecialchars($mensaje) ?></div>
        <?php endif; ?>

        <form method="post" novalidate>
            <?= csrfCampoOculto() ?>
            <div class="mb-3">
                <label class="form-label">Correo electrónico</label>
                <input type="email" name="correo" class="form-control" required autofocus>
            </div>
            <button type="submit" class="btn btn-sgc-primary w-100 mb-2">Enviar enlace</button>
            <a href="login.php" class="btn btn-outline-secondary w-100">Volver a iniciar sesión</a>
        </form>
    </div>
</div>
</div>
</body>
</html>
