import { isProductionEnvironment } from "@/lib/constants"; import { ChatbotError } from "@/lib/errors"; const MAX_MESSAGES = 30; const TTL_MS = 60 * 60 * 1000; const ipCounts = new Map(); export async function checkIpRateLimit(ip: string | undefined) { if (!isProductionEnvironment || !ip) { return; } const now = Date.now(); const entry = ipCounts.get(ip); if (!entry || entry.resetAt < now) { ipCounts.set(ip, { count: 1, resetAt: now + TTL_MS }); return; } entry.count += 1; if (entry.count > MAX_MESSAGES) { throw new ChatbotError("rate_limit:chat"); } }