import { LRUCache } from 'lru-cache';
import { NextResponse } from 'next/server';

const tokenCache = new LRUCache<string, number>({
    max: 500,
    ttl: 60 * 1000, // 1 minute
});

export function rateLimit(ip: string, limit: number = 5) {
    const currentUsage = tokenCache.get(ip) || 0;
    if (currentUsage >= limit) {
        return false;
    }
    tokenCache.set(ip, currentUsage + 1);
    return true;
}

export function getIP(req: Request) {
    const forwarded = req.headers.get("x-forwarded-for");
    if (forwarded) return forwarded.split(",")[0];
    return "127.0.0.1";
}
