import { ipSchluessel, zaehle } from '../termine/limits.js' /** * Grenze der oeffentlichen Zeiten-Schnittstelle (Spezifikation 2026-10-04-oeffnungszeiten-live-design.md, Abschnitt 4.1): * hoechstens 120 Abrufe je Minute und Client-IP. Der Zaehler liegt im Speicher dieses Prozesses (services/termine/limits.js: * IPv6 je /64, 'ip:'-Schluessel verdraengen keine langlebigen Zaehler) und traegt einen eigenen Schluessel, damit Zeiten und * Terminplaner nicht aus demselben Topf zaehlen. Tests leeren ihn mit resetTermineLimitsForTests. */ const ANFRAGEN_JE_IP = 120 const MINUTE_MS = 60 * 1000 /** Darf diese IP (IPv6 je /64) jetzt die Zeiten abrufen? Hoechstens 120 je Minute; true = erlaubt (gezaehlt), false = Grenze erreicht. */ export function darfZeitenAnfrage(ip, now) { return zaehle(`ip:zeiten:${ipSchluessel(ip)}`, ANFRAGEN_JE_IP, MINUTE_MS, now) }