/**
 * A memória curta da assinatura que o middleware guarda por e-mail.
 *
 * Mora no `globalThis` para que a rota do pagamento, que roda no mesmo
 * processo, consiga apagar a lembrança na hora: quem acabou de pagar entra
 * sem esperar os 5 minutos, e quem foi reembolsado sai sem esperar.
 */

export type AcessoLembrado = { existe: boolean; status: unknown; expires_at: unknown; ate: number };

declare global {
  var __acessosDoMiddleware: Map<string, AcessoLembrado> | undefined;
}

export function acessosLembrados() {
  globalThis.__acessosDoMiddleware ??= new Map();
  return globalThis.__acessosDoMiddleware;
}

export function esquecerAcesso(email: string) {
  acessosLembrados().delete(String(email || "").trim().toLowerCase());
}
