/** * Cuisine type → Material Symbols icon name mapping. * Works with "대분류|소분류" format (e.g. "한식|국밥/해장국"). */ const CUISINE_ICON_MAP: Record = { "한식": "rice_bowl", "일식": "set_meal", "중식": "ramen_dining", "양식": "dinner_dining", "아시아": "ramen_dining", "기타": "flatware", }; // Sub-category overrides for more specific icons const SUB_ICON_RULES: { keyword: string; icon: string }[] = [ { keyword: "회/횟집", icon: "set_meal" }, { keyword: "해산물", icon: "set_meal" }, { keyword: "삼겹살/돼지구이", icon: "kebab_dining" }, { keyword: "소고기/한우구이", icon: "kebab_dining" }, { keyword: "곱창/막창", icon: "kebab_dining" }, { keyword: "닭/오리구이", icon: "takeout_dining" }, { keyword: "스테이크", icon: "kebab_dining" }, { keyword: "햄버거", icon: "lunch_dining" }, { keyword: "피자", icon: "local_pizza" }, { keyword: "카페/디저트", icon: "coffee" }, { keyword: "베이커리", icon: "bakery_dining" }, { keyword: "치킨", icon: "takeout_dining" }, { keyword: "주점/포차", icon: "local_bar" }, { keyword: "이자카야", icon: "sake" }, { keyword: "라멘", icon: "ramen_dining" }, { keyword: "국밥/해장국", icon: "soup_kitchen" }, { keyword: "분식", icon: "ramen_dining" }, ]; const DEFAULT_ICON = "flatware"; export function getCuisineIcon(cuisineType: string | null | undefined): string { if (!cuisineType) return DEFAULT_ICON; // Check sub-category first for (const rule of SUB_ICON_RULES) { if (cuisineType.includes(rule.keyword)) return rule.icon; } // Fall back to main category (prefix before |) const main = cuisineType.split("|")[0]; return CUISINE_ICON_MAP[main] || DEFAULT_ICON; }