package gc.mda.kcg.collector;

import org.springframework.stereotype.Component;

import java.util.Map;
import java.util.regex.Pattern;

/**
 * 기사 분류기 (정규식 기반)
 * TODO: 프론트엔드 classifyArticle() 로직 이식
 */
@Component
public class ArticleClassifier {

    private static final Map<String, Pattern> CATEGORY_PATTERNS = Map.of(
            "military", Pattern.compile("(?i)(strike|attack|military|weapon|missile|drone|bomb|combat|war|force)"),
            "political", Pattern.compile("(?i)(sanction|diplomat|negotiat|treaty|nuclear|iran|deal|policy)"),
            "intelligence", Pattern.compile("(?i)(intel|spy|surveillance|intercept|sigint|osint|recon)")
    );

    /**
     * 기사 제목/본문을 분석하여 카테고리를 반환
     *
     * @param title   기사 제목
     * @param content 기사 본문
     * @return 분류된 카테고리 (military, political, intelligence, general)
     */
    public String classifyArticle(String title, String content) {
        String text = (title + " " + content).toLowerCase();

        for (Map.Entry<String, Pattern> entry : CATEGORY_PATTERNS.entrySet()) {
            if (entry.getValue().matcher(text).find()) {
                return entry.getKey();
            }
        }

        return "general";
    }
}
