package com.tasteby.util;

import java.util.regex.Pattern;

/**
 * #337 — User-Agent 기반 봇 패턴 매칭.
 *
 * Googlebot / bingbot / facebookexternalhit / 일반 crawler/spider 등을 일괄 차단.
 * 빈 UA는 봇으로 간주하지 않음(모바일 앱 등 정상 케이스 보호).
 */
public final class BotDetector {

    private BotDetector() {}

    // 일반적인 봇/크롤러 패턴. 케이스 무시.
    private static final Pattern BOT_PATTERN = Pattern.compile(
            "bot|crawler|spider|slurp|scrap|fetch|monitor|preview|lighthouse",
            Pattern.CASE_INSENSITIVE
    );

    public static boolean isBot(String userAgent) {
        if (userAgent == null || userAgent.isBlank()) return false;
        return BOT_PATTERN.matcher(userAgent).find();
    }
}
