# intent_engine.py

from typing import List, Dict

class IntentEngine:
    def __init__(self):
        self.patterns = self.load_default_patterns()

    def load_default_patterns(self) -> List[Dict[str, str]]:
        return [
            {"intent": "segítségkérés", "keywords": ["segíts", "mit tegyek", "nem tudom", "baj van"]},
            {"intent": "önreflexió", "keywords": ["miért", "hogyan változzak", "mi baj velem"]},
            {"intent": "kritika", "keywords": ["ez hülyeség", "nem értek egyet", "rossz válasz"]},
            {"intent": "keresés", "keywords": ["keresek", "hol találom", "melyik a legjobb"]},
            {"intent": "bizonytalanság", "keywords": ["lehet", "talán", "nem biztos", "nem értem"]},
            {"intent": "kapcsolódás", "keywords": ["hogy vagy", "veled mi van", "érted", "mit gondolsz", "hogyan látod"]},
            {"intent": "egzisztenciális_reflexió", "keywords": ["jövő", "emberiség", "mi lesz", "társadalom", "technológia hatása"]},
            {"intent": "morális_dilemma", "keywords": ["igaznak lenni", "jó vagy rossz", "helyes", "tévedni", "bűn", "erény"]},
            {"intent": "identitás", "keywords": ["ki vagyok", "milyen vagyok", "hogyan látsz engem", "mit gondolsz rólam"]},
            {"intent": "kapcsolati_reflexió", "keywords": ["emlékszel rám", "formállak", "beszélgetésünk", "kapcsolatunk"]},

        ]

    def detect_intent(self, text: str) -> str:
        text_lower = text.lower()
        for pattern in self.patterns:
            if any(keyword in text_lower for keyword in pattern["keywords"]):
                return pattern["intent"]
        return "ismeretlen"

    def teach(self, intent: str, new_keyword: str):
        for pattern in self.patterns:
            if pattern["intent"] == intent:
                pattern["keywords"].append(new_keyword.lower())
                return True
        # ha új szándék
        self.patterns.append({"intent": intent, "keywords": [new_keyword.lower()]})
        return True
