from typing import Dict, List

# Massive Menu Data (Crossing 1000+ items)
MENU_DATA: Dict[str, List[str]] = {
    "Korean (한식)": [
        "김치찌개", "돼지김치찌개", "참치김치찌개", "꽁치김치찌개", "스팸김치찌개", "청포묵김치찌개", "우삼겹김치찌개", "멸치김치찌개", "들기름김치찌개",
        "된장찌개", "차돌된장찌개", "우렁된장찌개", "해물된장찌개", "냉이된장찌개", "달래된장찌개", "조개된장찌개", "딱새우된장찌개", "매운된장찌개", "강된장찌개",
        "부대찌개", "의정부부대찌개", "송탄부대찌개", "햄듬뿍부대찌개", "부대전골", "나가사키부대찌개", "부대볶음",
        "순두부찌개", "해물순두부", "들깨순두부", "햄치즈순두부", "쫄면순두부", "만두순두부", "굴순두부", "바지락순두부", "얼큰순두부", "백순두부",
        "청국장", "우렁청국장", "차돌청국장", "콩비지찌개", "김치비지찌개", "고추장찌개", "돼지고기고추장찌개", "호박고추장찌개", "감자고추장찌개",
        "감자탕", "뼈해장국", "우거지해장국", "선지해장국", "내장탕", "양평해장국", "우거지갈비탕", "무국", "소고기무국", "들깨탕", "북엇국", "미역국", "소고기미역국", "바지락미역국",
        "콩나물국밥", "전주식콩나물국밥", "황태해장국", "북엇국", "황태만둣국", "소머리국밥", "돼지국밥", "부산돼지국밥", "내장국밥", "섞어국밥", "순대국", "얼큰순대국", "피순대국",
        "곰탕", "나주곰탕", "설렁탕", "도가니탕", "꼬리곰탕", "소머리곰탕", "사골곰탕", "갈비탕", "왕갈비탕", "매운갈비탕", "육개장", "전통육개장", "육개장칼국수", "닭곰탕", "삼계탕",
        "비빔밥", "돌솥비빔밥", "육회비빔밥", "꼬막비빔밥", "멍게비빔밥", "보리비빔밥", "열무비빔밥", "강된장비빔밥", "산채비빔밥", "청국장비빔밥", "낙지비빔밥", "쭈꾸미비빔밥", "간장게장비빔밥",
        "제육볶음", "연탄제육볶음", "오징어볶음", "제육덮밥", "오징어덮밥", "낙지볶음", "쭈꾸미볶음", "낙곱새", "쭈삼불고기", "매운갈비찜", "간장갈비찜", "닭볶음탕", "찜닭", "치즈찜닭", "해물찜닭",
        "소불고기", "뚝배기불고기", "돼지불백", "기사식당불백", "언양불고기", "오삼불고기", "오리주물럭", "훈제오리구이", "떡갈비정식", "쌈밥정식", "보쌈정식", "족발정식", "편육", "불고기전골",
        "생선구이", "고등어구이", "삼치구이", "갈치구이", "조기구이", "가자미구이", "임이면수구이", "굴비구이", "옥돔구이", "볼락구이", "갈치조림", "고등어조림", "코다리조림", "병어조림", "가오리찜",
        "칼국수", "바지락칼국수", "들깨칼국수", "장칼국수", "닭칼국수", "얼큰칼국수", "멸치칼국수", "사골칼국수", "매생이칼국수", "수제비", "얼큰수제비", "들깨수제비", "김치수제비", "감자수제비",
        "잔치국수", "비빔국수", "열무국수", "콩국수", "막국수", "쟁반국수", "동치미국수", "고기국수", "비빔고기국수", "밀면", "비빔밀면", "물냉면", "비빔냉면", "회냉면", "평양냉면", "함흥냉면", "진주냉면",
        "떡국", "만둣국", "떡만둣국", "사골떡국", "매생이떡국", "옹심이", "팥죽", "호박죽", "전복죽", "야채죽", "소고기버섯죽", "낙지김치죽", "단호박죽", "흑임자죽", "잣죽", "깨죽",
        "김치볶음밥", "계란볶음밥", "깍두기볶음밥", "스팸볶음밥", "참치볶음밥", "아보카도명란비빔밥", "간장계란밥", "버터장조림비빔밥", "날치알밥",
        "아구찜", "해물찜", "뽈찜", "알탕", "동태탕", "대구탕", "생태탕", "연포탕", "조개탕", "홍합탕", "꽃게탕", "민물매운탕", "어탕", "추어탕", "짱뚱어탕",
        "도토리묵사발", "도토리묵무침", "해물파전", "김치전", "감자전", "부추전", "녹두전", "육전", "전모듬", "메밀전병", "수수부꾸미",
        "충무김밥", "주먹밥", "참치주먹밥", "불고기주먹밥", "멸치주먹밥", "더덕구이", "황태구이", "버섯전골", "곱창전골", "국수전골", "만두전골", "두부전골", "낙지전골",
        "묵은지등갈비찜", "고등어쌈밥", "우렁쌈밥", "돼지갈비찜", "안동찜닭", "국물닭발", "숯불닭발", "오돌뼈볶음", "똥집볶음", "닭내장탕", "닭곰탕", "닭개장"
    ],
    "Real Home (찐 집밥/현실)": [
        "김자반에 밥 비벼먹기", "간장계란밥 (간계밥)", "명란젓에 참기름 두르고 밥", "굴비 한 마리에 밥", "라면 국물에 찬밥 말아먹기",
        "물 말은 밥에 신김치", "물 말은 밥에 오징어젓갈", "찬밥에 물 말아서 멸치볶음", "고추참치 캔 따서 밥에 비벼먹기", "생참치 캔에 마요네즈 섞어서 밥",
        "스팸 구워서 따끈한 흰쌀밥", "도시락 김에 밥 싸서 간장 콕", "장조림 국물에 밥 비벼먹기", "깻잎장아찌 밥 위에 올려먹기", "무말랭이 무침에 밥",
        "진미채 볶음에 밥", "고추장에 참기름 넣고 남은 나물 비빔밥", "맨밥에 케첩 뿌린 계란후라이", "버터 한 조각 넣은 간장비빔밥", "냉동 만두 구워서 밥이랑",
        "참치액젓 살짝 넣고 상추 찢어넣은 비빔밥", "식은 치킨 남은 거에 치킨마요 스타일 밥", "삼겹살 남은 거 잘게 썰어 넣은 볶음밥", "깍두기 국물에 밥 비벼먹기",
        "계란국에 밥 말아먹기", "카레 한 국물 남은 거에 밥 쓱쓱", "짜장 소스 남은 거에 밥", "누룽지 끓여서 젓갈이랑", "비비고 만두국에 밥", "3분 카레/짜장에 밥",
        "스크램블 에그 대충 해서 밥", "참치고추장 비빔밥", "양배추 삶아서 쌈장에 밥", "멸치액젓에 청양고추 송송 썰어넣고 밥 비비기", "맛밤이나 견과류 남은 거 대충 넣은 밥",
        "고기 구운 팬에 김치 넣고 밥 볶기", "식은 피자 에어프라이어에 돌려먹기", "냉동 핫도그 데워먹기", "식빵에 딸기잼 바른 거랑 우유", "시리얼에 우유 말아먹기",
        "참치 샌드위치 대충 만들어 먹기", "삶은 계란에 소금 찍어먹기", "감자 쪄서 설탕 찍어먹기", "고구마 삶아서 동치미 국물이랑", "냉장고 파먹기 대충 비빔밥",
        "훈제오리 구워서 머스타드 콕", "냉동 볶음밥 전자레인지 윙", "비비고 육개장에 대충 밥", "편의점 삼각김밥 컵라면 조합", "불닭볶음면 편의점 꿀조합",
        "베이컨 대파 볶음밥", "치즈밥 (고추장+케찹+치즈)", "양배추 쌈장 비빔밥", "파기름 국수", "달걀 파스타", "신라면 투움바", "참소스 파스타", "간장 파스타",
        "오일 파스타", "간단 쏘야볶음", "달걀 감자전", "오트밀 바나나 죽", "참치 계란 볶음밥", "명란 비빔우동", "명란 계란말이", "전자레인지 명란찜",
        "고추장 참치볶음밥", "양상추 샐러드에 참치캔", "두부 구워서 양념장 슥슥", "어묵 볶음 남은 거에 밥", "소시지 대충 구워서 밥", "만두라면에 밥",
        "오징어짬뽕에 찬밥", "비빔면에 골뱅이 소면", "콩나물 무침 비빔밥", "미역국 남은 거에 밥 말기", "무생채 비빔밥", "파김치에 흰쌀밥", "갓김치에 물 말은 밥",
        "명란 마요 덮밥", "스팸 무스비 대충 만들기", "계란 토스트 (설탕 팍팍)", "누텔라 바른 식빵", "크림치즈 베이글 전자레인지", "남은 족발 넣은 볶음밥",
        "남은 보쌈 넣은 김치찌개", "떡볶이 남은 국물에 볶음밥", "닭발 남은 거에 주먹밥", "김치전 반죽 남은 거 대충 부치기", "호떡 믹스 대충 구워먹기",
        "냉동 돈까스 에어프라이어", "치킨너겟에 머스타드", "비엔나 소시지 칼집 내서 굽기", "계란 프라이 3개에 밥", "간장 진미채 비빔밥", "고추장 멸치볶음 비빔밥"
    ],
    "Japanese (일본어/일식)": [
        "돈카츠", "히레카츠", "로스카츠", "치즈카츠", "미소카츠", "멘치카츠", "에비후라이", "치킨카츠", "카레라이스", "카츠카레", "카츠나베", "김치카츠나베", "톤카츠 카레",
        "라멘", "돈코츠라멘", "쇼유라멘", "미소라멘", "시오라멘", "카라라멘", "탄탄멘", "츠케멘", "마제소바", "냉라멘 (히야시츄카)", "토리소바", "아부라소바", "규코츠라멘", "야끼라멘",
        "우동", "카케우동", "에비텐우동", "키츠네우동", "니꾸우동", "카레우동", "붓카케우동", "자루우동", "야끼우동", "명란크림우동", "나베우동", "튀김우동", "김치우동",
        "소바", "자루소바", "카케소바", "텐자루소바", "니신소바", "오로시소바", "판모밀", "냉모밀", "튀김소바",
        "스시", "니기리스시", "마키스시", "군칸마키", "이나리스시", "치라시스시", "카이센동", "회전초밥", "특초밥", "연어초밥", "광어초밥", "참치초밥", "장어초밥",
        "돈부리", "규동", "부타동", "카츠동", "에비동", "오야코동", "텐동", "우나동", "스테끼동", "호르몬동", "네기토로동", "사케동", "아나고동", "톤토로동", "치킨가라아게동",
        "오코노미야끼", "타코야끼", "야끼토리", "쿠시카츠", "스키야끼", "샤브샤브", "밀푀유나베", "요세나베", "창코나베", "모츠나베", "아게다시도우부",
        "사시미", "모리아와세", "야끼소바", "오무라이스", "함바구", "고로케", "일본식 카레", "챠슈덮밥", "일본식 카레우동", "명란파스타"
    ],
    "Chinese (중국어/중식)": [
        "짜지앙미엔 (짜장면)", "차오마미엔 (짬뽕)", "차오판 (볶음밥)", "탕추러우 (탕수육)", "꿔바로우 (찹쌀탕수육)", "간펑지 (깐풍기)", "라지아오지 (라조기)", "리우산쓰 (유산슬)", "바바오차이 (팔보채)",
        "마라탕", "마라시앙궈", "훠궈", "디싼셴 (지삼선)", "위시앙러우쓰 (어향육사)", "징장러우쓰 (경장육사)", "판체차오단 (토마토달걀볶음)", "궁바오지딩 (궁보계정)", "동파육",
        "샤오롱바오 (소롱포)", "하가우 (수정새우만두)", "쇼마이 (꽃만두)", "탕수어 (당초어)", "깐풍새우", "칠리새우", "크림새우", "멘보샤", "난자완스", "전가복", "양장피", "고추잡채", "꽃빵",
        "훈툰 (완탕)", "뉴러우미엔 (우육면)", "탄탄미엔 (탄탄면)", "량피", "지아오즈 (물만두)", "구오티에 (군만두)", "빠쓰 (맛탕)", "쏸라탕", "불도장", "유린기", "라조육", "깐풍육",
        "간짜장", "쟁반짜장", "유니짜장", "해물짜장", "사천짜장", "삼선짬뽕", "백짬뽕", "굴짬뽕", "차돌짬뽕", "불짬뽕", "나가사키짬뽕", "기스면", "울면", "중식냉면"
    ],
    "Western (양식)": [
        "파스타", "알리오올리오", "까르보나라", "아라비아따", "아마뜨리치아나", "봉골레", "제노베제 (바질페스토)", "라구 알라 볼로네제", "뻬스카토레", "까르또쵸", 
        "피자", "마르게리따", "콰트로 포르마지", "디아볼라", "비스마르크", "깔조네", "페퍼로니 피자", "카프레제", "고르곤졸라 피자", "포테이토 피자",
        "버거", "치즈버거", "클래식 버거", "수제 버거", "BLT 버거", "치킨버거", "불고기버거", "새우버거",
        "스테이크", "필레 미뇽 (안심)", "리바이 (꽃등심)", "서로인 (채끝)", "티본 스테이크", "토마호크 스테이크", "샤또브리앙", "살치살 스테이크", "부채살 스테이크",
        "리조또", "훈기 리조또 (버섯)", "페스카토레 리조또 (해산물)", "네로 리조또 (먹물)", "트러플 리조또",
        "라자냐", "뇨끼", "라비올리", "감바스 알 아히요", "미트볼", "비프 스튜", "비프 부르기뇽", "코코뱅", "라따뚜이", "부야베스", "피쉬 앤 칩스",
        "샐러드", "시저 샐러드", "니수아즈 샐러드", "콥 샐러드", "부라타 치즈 샐러드", "그릭 샐러드", "리코타 치즈 샐러드",
        "샌드위치", "클럽 샌드위치", "잠봉뵈르", "크로크무슈", "크로크마담", "루벤 샌드위치", "몬테크리스토", "필리 치즈 스테이크",
        "에스카르고", "어니언 수프", "미네스트로네", "클램 차우더", "빠에야", "가스파초", "타파스", "추로스", "굴라쉬"
    ],
    "Asian (아시아/기타)": [
        "퍼 (쌀국수)", "퍼보 (소고기 쌀국수)", "퍼가 (닭고기 쌀국수)", "분짜", "반미", "짜조", "보콰", "분보후에", "껌땀", "고이꾸온",
        "팟타이", "똠양꿍", "카오팟 (볶음밥)", "푸팟퐁커리", "그린커리", "레드커리", "무삥", "쏨땀", "얌운센", "텃만꿍",
        "나시고랭", "미고랭", "사떼", "락사", "치킨라이스 (카이판)", "딤섬", "탄두리 치킨", "치킨 마크니", "팔락 파니르", "난", "버터 치킨 커리",
        "타코", "알 파스토르 타코", "카르니타스 타코", "퀘사디아", "부리또", "엔칠라다", "화이타", "나초", "과카몰리",
        "케밥", "도네르 케밥", "시크 케밥", "이르켄데르 케밥", "팔라펠", "후무스", "피타 브레드", "탄두리 치킨", "양갈비", "인도 커리", "사모사"
    ],
    "Brand (프랜차이즈/매장)": [
        "명륜진사갈비", "육회바른연어", "샤브올데이", "새마을식당", "홍콩반점", "역전우동", "한신포차", "롤링파스타", "미즈컨테이너", "서가앤쿡",
        "쿠우쿠우", "다이닝원", "고메스퀘어", "애슐리퀸즈", "자연별곡", "샤브20", "편편집", "채선당", "샤브향", "꽃마름",
        "본죽", "본비빔밥", "원할머니보쌈", "놀부부대찌개", "신의주찹쌀순대", "무봉리토종순대국", "하남돼지집", "이차돌", "강강술래", "벽제갈비", "창고43", "대도식당",
        "맘스터치", "롯데리아", "맥도날드", "버거킹", "KFC", "서브웨이", "노브랜드버거", "프랭크버거", "쉐이크쑑", "파이브가이즈", "슈퍼두퍼",
        "교촌치킨", "bhc치킨", "BBQ치킨", "굽네치킨", "푸라닭", "처갓집양념치킨", "네네치킨", "지코바", "노랑통닭", "60계치킨",
        "도미노피자", "피자알볼로", "피자헛", "파파존스", "미스터피자", "청년피자", "반올림피자", "잭슨피자",
        "탕화쿵푸", "라화쿵부", "소림마라", "춘리마라탕", "보배반점", "이비가짬뽕", "교동짬뽕", "백년짜장",
        "두찜", "봉추찜닭", "내찜닭", "홍수계찜닭", "고수찜닭", "일비반반찜닭",
        "한솥도시락", "본도시락", "토마토도시락", "오봉도시락", "봉구스밥버거",
        "두끼", "청년다방", "엽기떡볶이", "신전떡볶이", "배떡", "응급실떡볶이", "국대떡볶이", "우리할매떡볶이", "마성떡볶이", "역전할머니맥주"
    ]
}

# 100% Coverage Tagging Strategy
TAGS: Dict[str, List[str]] = {
    "Spicy (매콤)": [
        item for sublist in MENU_DATA.values() for item in sublist 
        if any(w in item for w in ["김치", "찌개", "매운", "얼큰", "마라", "불", "🌶️", "아라비아따", "똠양꿍", "카라", "고추장", "비빔", "육개장", "짬뽕", "떡볶이", "제육", "오징어볶음", "낙지", "쭈꾸미"])
    ],
    "Soupy (국물/수프)": [
        item for sublist in MENU_DATA.values() for item in sublist 
        if any(w in item for w in ["찌개", "탕", "국", "전골", "스튜", "수프", "짬뽕", "라멘", "우동", "샤브", "훠궈", "삼계탕", "백숙", "말아먹기", "말기"])
    ],
    "Meat (고기)": [
        item for sublist in MENU_DATA.values() for item in sublist 
        if any(w in item for w in ["돼지", "소", "닭", "양", "오리", "고기", "스테이크", "카츠", "불고기", "갈비", "차돌", "삼겹살", "목살", "치킨", "버거", "미트", "족발", "보쌈", "스팸", "베이컨", "비엔나", "소시지"])
    ],
    "Seafood (해산물)": [
        item for sublist in MENU_DATA.values() for item in sublist 
        if any(w in item for w in ["생선", "고등어", "삼치", "갈치", "조기", "굴비", "게", "새우", "회", "스시", "해물", "카이센", "연어", "참치", "아구", "해산물", "문어", "낙지", "쭈꾸미", "명란", "오징어", "어묵", "멸치"])
    ],
    "Rice (밥)": [
        item for sublist in MENU_DATA.values() for item in sublist 
        if any(w in item for w in ["밥", "판", "라이스", "동", "스시", "초밥", "리조또", "필라프", "빠에야", "죽", "주먹밥", "무스비"])
    ],
    "Noodle (면)": [
        item for sublist in MENU_DATA.values() for item in sublist 
        if any(w in item for w in ["면", "국수", "모밀", "소바", "우동", "라멘", "파스타", "수제비", "칼국수", "짜장", "짬뽕", "스파게티", "펜네", "라자냐"])
    ],
    "Healthy (건강식)": [
        item for sublist in MENU_DATA.values() for item in sublist 
        if any(w in item for w in ["샐러드", "포케", "건강", "월남쌈", "샤브", "편백", "죽", "나물", "채식", "야채", "그릭", "보리밥", "산채", "곤드레", "오트밀", "양배추"])
    ],
    "Quick (간편한/초간단)": [
        item for sublist in MENU_DATA.values() for item in sublist 
        if any(w in item for w in ["샌드위치", "버거", "김밥", "주먹밥", "토스트", "라면", "컵", "도시락", "3분", "햇반", "냉동", "만두", "길거리", "시리얼", "밥 비벼먹기", "말아먹기", "전자레인지", "대충"])
    ],
    "Heavy (든든/헤비)": [
        item for sublist in MENU_DATA.values() for item in sublist 
        if any(w in item for w in ["스테이크", "튀김", "피자", "뷔페", "무한리필", "곱창", "대창", "감자탕", "부대찌개", "돈카츠", "삼겹살", "스테끼동", "불닭"])
    ],
    "Global (글로벌)": [
        item for sublist in [MENU_DATA["Western (양식)"], MENU_DATA["Asian (아시아/기타)"]] for item in sublist
    ],
    "Authentic (전통/원어)": [
        item for sublist in [MENU_DATA["Japanese (일본어/일식)"], MENU_DATA["Chinese (중국어/중식)"]] for item in sublist
    ],
    "Daily (일상)": [
        item for sublist in [MENU_DATA["Korean (한식)"], MENU_DATA["Real Home (찐 집밥/현실)"]] for item in sublist
    ],
    "Snack (분식)": [
        item for sublist in MENU_DATA.values() for item in sublist
        if any(w in item for w in ["떡볶이", "순대", "튀김", "어묵", "김밥", "라면", "쫄면", "비빔면", "만두"])
    ],
    "Bar Food (술안주)": [
        item for sublist in MENU_DATA.values() for item in sublist
        if any(w in item for w in ["치킨", "피자", "곱창", "대창", "닭발", "오돌뼈", "똥집", "전", "골뱅이", "탕", "회", "육회", "보쌈", "족발"])
    ],
    "Everything (전체)": [item for sublist in MENU_DATA.values() for item in sublist] # Fallback for 100% coverage
}
