/// 레거시 서비스 데이터 - 하드코딩된 서비스 URL 매핑
class LegacyServiceData {
  // OTT 서비스
  static final Map<String, String> ottServices = {
    'netflix': 'https://www.netflix.com',
    '넷플릭스': 'https://www.netflix.com',
    'disney+': 'https://www.disneyplus.com',
    '디즈니플러스': 'https://www.disneyplus.com',
    'youtube premium': 'https://www.youtube.com/premium',
    '유튜브 프리미엄': 'https://www.youtube.com/premium',
    'watcha': 'https://watcha.com',
    '왓챠': 'https://watcha.com',
    'wavve': 'https://www.wavve.com',
    '웨이브': 'https://www.wavve.com',
    'apple tv+': 'https://tv.apple.com',
    '애플 티비플러스': 'https://tv.apple.com',
    'tving': 'https://www.tving.com',
    '티빙': 'https://www.tving.com',
    'prime video': 'https://www.primevideo.com',
    '프라임 비디오': 'https://www.primevideo.com',
    'amazon prime': 'https://www.amazon.com/prime',
    '아마존 프라임': 'https://www.amazon.com/prime',
    'coupang play': 'https://play.coupangplay.com',
    '쿠팡 플레이': 'https://play.coupangplay.com',
    'hulu': 'https://www.hulu.com',
    '훌루': 'https://www.hulu.com',
  };

  // 음악 서비스
  static final Map<String, String> musicServices = {
    'spotify': 'https://www.spotify.com',
    '스포티파이': 'https://www.spotify.com',
    'apple music': 'https://music.apple.com',
    '애플 뮤직': 'https://music.apple.com',
    'melon': 'https://www.melon.com',
    '멜론': 'https://www.melon.com',
    'genie': 'https://www.genie.co.kr',
    '지니': 'https://www.genie.co.kr',
    'youtube music': 'https://music.youtube.com',
    '유튜브 뮤직': 'https://music.youtube.com',
    'bugs': 'https://music.bugs.co.kr',
    '벅스': 'https://music.bugs.co.kr',
    'flo': 'https://www.music-flo.com',
    '플로': 'https://www.music-flo.com',
    'vibe': 'https://vibe.naver.com',
    '바이브': 'https://vibe.naver.com',
    'tidal': 'https://www.tidal.com',
    '타이달': 'https://www.tidal.com',
  };

  // 저장 (클라우드/파일) 서비스
  static final Map<String, String> storageServices = {
    'google drive': 'https://www.google.com/drive/',
    '구글 드라이브': 'https://www.google.com/drive/',
    'dropbox': 'https://www.dropbox.com',
    '드롭박스': 'https://www.dropbox.com',
    'onedrive': 'https://www.onedrive.com',
    '원드라이브': 'https://www.onedrive.com',
    'icloud': 'https://www.icloud.com',
    '아이클라우드': 'https://www.icloud.com',
    'box': 'https://www.box.com',
    '박스': 'https://www.box.com',
    'pcloud': 'https://www.pcloud.com',
    'mega': 'https://mega.nz',
    '메가': 'https://mega.nz',
    'naver mybox': 'https://mybox.naver.com',
    '네이버 마이박스': 'https://mybox.naver.com',
  };

  // 통신 · 인터넷 · TV 서비스
  static final Map<String, String> telecomServices = {
    'skt': 'https://www.sktelecom.com',
    'sk텔레콤': 'https://www.sktelecom.com',
    'kt': 'https://www.kt.com',
    'lgu+': 'https://www.lguplus.com',
    'lg유플러스': 'https://www.lguplus.com',
    'olleh tv': 'https://www.kt.com/olleh_tv',
    '올레 tv': 'https://www.kt.com/olleh_tv',
    'b tv': 'https://www.skbroadband.com',
    '비티비': 'https://www.skbroadband.com',
    'u+모바일tv': 'https://www.lguplus.com',
    '유플러스모바일tv': 'https://www.lguplus.com',
  };

  // 생활/라이프스타일 서비스
  static final Map<String, String> lifestyleServices = {
    '네이버 플러스': 'https://plus.naver.com',
    'naver plus': 'https://plus.naver.com',
    '카카오 구독': 'https://subscribe.kakao.com',
    'kakao subscribe': 'https://subscribe.kakao.com',
    '쿠팡 와우': 'https://www.coupang.com/np/coupangplus',
    'coupang wow': 'https://www.coupang.com/np/coupangplus',
    '스타벅스 버디': 'https://www.starbucks.co.kr',
    'starbucks buddy': 'https://www.starbucks.co.kr',
    'cu 구독': 'https://cu.bgfretail.com',
    'gs25 구독': 'https://gs25.gsretail.com',
    '현대차 구독': 'https://www.hyundai.com/kr/ko/eco/vehicle-subscription',
    'lg전자 구독': 'https://www.lge.co.kr',
    '삼성전자 구독': 'https://www.samsung.com/sec',
    '다이슨 케어': 'https://www.dyson.co.kr',
    'dyson care': 'https://www.dyson.co.kr',
    '마켓컬리': 'https://www.kurly.com',
    'kurly': 'https://www.kurly.com',
    '헬로네이처': 'https://www.hellonature.com',
    'hello nature': 'https://www.hellonature.com',
    '이마트 트레이더스': 'https://www.emarttraders.co.kr',
    '홈플러스': 'https://www.homeplus.co.kr',
    'hellofresh': 'https://www.hellofresh.com',
    '헬로프레시': 'https://www.hellofresh.com',
    'bespoke post': 'https://www.bespokepost.com',
  };

  // 쇼핑/이커머스 서비스
  static final Map<String, String> shoppingServices = {
    'amazon prime': 'https://www.amazon.com/prime',
    '아마존 프라임': 'https://www.amazon.com/prime',
    'walmart+': 'https://www.walmart.com/plus',
    '월마트플러스': 'https://www.walmart.com/plus',
    'chewy': 'https://www.chewy.com',
    '츄이': 'https://www.chewy.com',
    'dollar shave club': 'https://www.dollarshaveclub.com',
    '달러셰이브클럽': 'https://www.dollarshaveclub.com',
    'instacart': 'https://www.instacart.com',
    '인스타카트': 'https://www.instacart.com',
    'shipt': 'https://www.shipt.com',
    '십트': 'https://www.shipt.com',
    'grove': 'https://grove.co',
    '그로브': 'https://grove.co',
    'cratejoy': 'https://www.cratejoy.com',
    'shopify': 'https://www.shopify.com',
    '쇼피파이': 'https://www.shopify.com',
  };

  // AI 서비스
  static final Map<String, String> aiServices = {
    'chatgpt': 'https://chat.openai.com',
    '챗GPT': 'https://chat.openai.com',
    'openai': 'https://openai.com',
    '오픈AI': 'https://openai.com',
    'claude': 'https://claude.ai',
    '클로드': 'https://claude.ai',
    'anthropic': 'https://www.anthropic.com',
    '앤트로픽': 'https://www.anthropic.com',
    'midjourney': 'https://www.midjourney.com',
    '미드저니': 'https://www.midjourney.com',
    'perplexity': 'https://www.perplexity.ai',
    '퍼플렉시티': 'https://www.perplexity.ai',
    'copilot': 'https://copilot.microsoft.com',
    '코파일럿': 'https://copilot.microsoft.com',
    'gemini': 'https://gemini.google.com',
    '제미니': 'https://gemini.google.com',
    'google ai': 'https://ai.google',
    '구글 AI': 'https://ai.google',
    'bard': 'https://bard.google.com',
    '바드': 'https://bard.google.com',
    'dall-e': 'https://openai.com/dall-e',
    '달리': 'https://openai.com/dall-e',
    'stable diffusion': 'https://stability.ai',
    '스테이블 디퓨전': 'https://stability.ai',
  };

  // 프로그래밍 / 개발 서비스
  static final Map<String, String> programmingServices = {
    'github': 'https://github.com',
    '깃허브': 'https://github.com',
    'cursor': 'https://cursor.com',
    '커서': 'https://cursor.com',
    'jetbrains': 'https://www.jetbrains.com',
    '제트브레인스': 'https://www.jetbrains.com',
    'intellij': 'https://www.jetbrains.com/idea',
    '인텔리제이': 'https://www.jetbrains.com/idea',
    'visual studio': 'https://visualstudio.microsoft.com',
    '비주얼 스튜디오': 'https://visualstudio.microsoft.com',
    'aws': 'https://aws.amazon.com',
    '아마존 웹서비스': 'https://aws.amazon.com',
    'azure': 'https://azure.microsoft.com',
    '애저': 'https://azure.microsoft.com',
    'google cloud': 'https://cloud.google.com',
    '구글 클라우드': 'https://cloud.google.com',
    'digitalocean': 'https://www.digitalocean.com',
    '디지털오션': 'https://www.digitalocean.com',
    'heroku': 'https://www.heroku.com',
    '헤로쿠': 'https://www.heroku.com',
    'codecademy': 'https://www.codecademy.com',
    '코드아카데미': 'https://www.codecademy.com',
    'udemy': 'https://www.udemy.com',
    '유데미': 'https://www.udemy.com',
    'coursera': 'https://www.coursera.org',
    '코세라': 'https://www.coursera.org',
  };

  // 오피스 및 협업 툴
  static final Map<String, String> officeTools = {
    'microsoft 365': 'https://www.microsoft.com/microsoft-365',
    '마이크로소프트 365': 'https://www.microsoft.com/microsoft-365',
    'office 365': 'https://www.microsoft.com/microsoft-365',
    '오피스 365': 'https://www.microsoft.com/microsoft-365',
    'google workspace': 'https://workspace.google.com',
    '구글 워크스페이스': 'https://workspace.google.com',
    'slack': 'https://slack.com',
    '슬랙': 'https://slack.com',
    'notion': 'https://www.notion.so',
    '노션': 'https://www.notion.so',
    'trello': 'https://trello.com',
    '트렐로': 'https://trello.com',
    'asana': 'https://asana.com',
    '아사나': 'https://asana.com',
    'dropbox': 'https://www.dropbox.com',
    '드롭박스': 'https://www.dropbox.com',
    'figma': 'https://www.figma.com',
    '피그마': 'https://www.figma.com',
    'adobe creative cloud': 'https://www.adobe.com/creativecloud.html',
    '어도비 크리에이티브 클라우드': 'https://www.adobe.com/creativecloud.html',
  };

  // 기타 유명 서비스
  static final Map<String, String> otherServices = {
    'google one': 'https://one.google.com',
    '구글 원': 'https://one.google.com',
    'icloud': 'https://www.icloud.com',
    '아이클라우드': 'https://www.icloud.com',
    'nintendo switch online': 'https://www.nintendo.com/switch/online-service',
    '닌텐도 스위치 온라인': 'https://www.nintendo.com/switch/online-service',
    'playstation plus': 'https://www.playstation.com/ps-plus',
    '플레이스테이션 플러스': 'https://www.playstation.com/ps-plus',
    'xbox game pass': 'https://www.xbox.com/xbox-game-pass',
    '엑스박스 게임 패스': 'https://www.xbox.com/xbox-game-pass',
    'ea play': 'https://www.ea.com/ea-play',
    'EA 플레이': 'https://www.ea.com/ea-play',
    'ubisoft+': 'https://ubisoft.com/plus',
    '유비소프트+': 'https://ubisoft.com/plus',
    'epic games': 'https://www.epicgames.com',
    '에픽 게임즈': 'https://www.epicgames.com',
    'steam': 'https://store.steampowered.com',
    '스팀': 'https://store.steampowered.com',
  };

  // 해지 안내 페이지 URL 목록 (공식 해지 안내 페이지가 있는 서비스들)
  static final Map<String, String> cancellationUrls = {
    // OTT 서비스 해지 안내 페이지
    'netflix': 'https://help.netflix.com/ko/node/407',
    '넷플릭스': 'https://help.netflix.com/ko/node/407',
    'disney+':
        'https://help.disneyplus.com/csp?id=csp_article_content&sys_kb_id=f0ddbe01db7601105d5e040ad3961979',
    '디즈니플러스':
        'https://help.disneyplus.com/csp?id=csp_article_content&sys_kb_id=f0ddbe01db7601105d5e040ad3961979',
    'youtube premium': 'https://support.google.com/youtube/answer/6308278',
    '유튜브 프리미엄': 'https://support.google.com/youtube/answer/6308278',
    'watcha': 'https://watcha.com/settings/payment',
    '왓챠': 'https://watcha.com/settings/payment',
    'wavve': 'https://www.wavve.com/my',
    '웨이브': 'https://www.wavve.com/my',
    'apple tv+': 'https://support.apple.com/ko-kr/HT202039',
    '애플 티비플러스': 'https://support.apple.com/ko-kr/HT202039',
    'tving': 'https://www.tving.com/my/cancelMembership',
    '티빙': 'https://www.tving.com/my/cancelMembership',
    'amazon prime': 'https://www.amazon.com/gp/primecentral/managemembership',
    '아마존 프라임': 'https://www.amazon.com/gp/primecentral/managemembership',

    // 음악 서비스 해지 안내 페이지
    'spotify': 'https://support.spotify.com/us/article/cancel-premium/',
    '스포티파이': 'https://support.spotify.com/us/article/cancel-premium/',
    'apple music': 'https://support.apple.com/ko-kr/HT202039',
    '애플 뮤직': 'https://support.apple.com/ko-kr/HT202039',
    'melon':
        'https://faqs2.melon.com/customer/faq/informFaq.htm?no=17&faqId=QUES20150209000002&orderChk=date&SEARCH_KEY=&SEARCH_PAR_CATEGORY=CATE20130909000006&SEARCH_CATEGORY=CATE20130909000021',
    '멜론':
        'https://faqs2.melon.com/customer/faq/informFaq.htm?no=17&faqId=QUES20150209000002&orderChk=date&SEARCH_KEY=&SEARCH_PAR_CATEGORY=CATE20130909000006&SEARCH_CATEGORY=CATE20130909000021',
    'youtube music': 'https://support.google.com/youtubemusic/answer/6308278',
    '유튜브 뮤직': 'https://support.google.com/youtubemusic/answer/6308278',

    // AI 서비스 해지 안내 페이지
    'chatgpt':
        'https://help.openai.com/en/articles/7730211-manage-or-cancel-your-chatgpt-plus-subscription',
    '챗GPT':
        'https://help.openai.com/en/articles/7730211-manage-or-cancel-your-chatgpt-plus-subscription',
    'claude':
        'https://help.anthropic.com/en/articles/8798313-how-do-i-cancel-my-claude-subscription',
    '클로드':
        'https://help.anthropic.com/en/articles/8798313-how-do-i-cancel-my-claude-subscription',
    'midjourney': 'https://docs.midjourney.com/docs/manage-subscription',
    '미드저니': 'https://docs.midjourney.com/docs/manage-subscription',

    // 프로그래밍 / 개발 서비스 해지 안내 페이지
    'github':
        'https://docs.github.com/ko/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription',
    '깃허브':
        'https://docs.github.com/ko/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription',
    'jetbrains':
        'https://sales.jetbrains.com/hc/en-gb/articles/207240845-How-to-cancel-an-auto-renewal-subscription-',
    '제트브레인스':
        'https://sales.jetbrains.com/hc/en-gb/articles/207240845-How-to-cancel-an-auto-renewal-subscription-',

    // 오피스 및 협업 툴 해지 안내 페이지
    'microsoft 365':
        'https://support.microsoft.com/en-us/office/cancel-a-microsoft-365-subscription-46e2634c-c64b-4c65-94b9-2cc9c960e91b',
    '마이크로소프트 365':
        'https://support.microsoft.com/en-us/office/cancel-a-microsoft-365-subscription-46e2634c-c64b-4c65-94b9-2cc9c960e91b',
    'office 365':
        'https://support.microsoft.com/en-us/office/cancel-a-microsoft-365-subscription-46e2634c-c64b-4c65-94b9-2cc9c960e91b',
    '오피스 365':
        'https://support.microsoft.com/en-us/office/cancel-a-microsoft-365-subscription-46e2634c-c64b-4c65-94b9-2cc9c960e91b',
    'slack':
        'https://slack.com/help/articles/360003378691-Cancel-your-Slack-subscription',
    '슬랙':
        'https://slack.com/help/articles/360003378691-Cancel-your-Slack-subscription',
    'notion':
        'https://www.notion.so/help/billing-and-payment-settings#cancel-a-subscription',
    '노션':
        'https://www.notion.so/help/billing-and-payment-settings#cancel-a-subscription',
    'dropbox': 'https://help.dropbox.com/accounts-billing/cancellation',
    '드롭박스': 'https://help.dropbox.com/accounts-billing/cancellation',
    'adobe creative cloud':
        'https://helpx.adobe.com/manage-account/using/cancel-subscription.html',
    '어도비 크리에이티브 클라우드':
        'https://helpx.adobe.com/manage-account/using/cancel-subscription.html',

    // 기타 유명 서비스 해지 안내 페이지
    'google one': 'https://support.google.com/googleone/answer/9140429',
    '구글 원': 'https://support.google.com/googleone/answer/9140429',
    'icloud': 'https://support.apple.com/ko-kr/HT207594',
    '아이클라우드': 'https://support.apple.com/ko-kr/HT207594',
    'nintendo switch online':
        'https://en-americas-support.nintendo.com/app/answers/detail/a_id/41925/~/how-to-cancel-a-nintendo-switch-online-membership',
    '닌텐도 스위치 온라인':
        'https://en-americas-support.nintendo.com/app/answers/detail/a_id/41925/~/how-to-cancel-a-nintendo-switch-online-membership',
    'playstation plus':
        'https://www.playstation.com/support/subscriptions/cancel-playstation-plus/',
    '플레이스테이션 플러스':
        'https://www.playstation.com/support/subscriptions/cancel-playstation-plus/',
    'xbox game pass':
        'https://support.xbox.com/help/subscriptions-billing/manage-subscriptions/xbox-game-pass-how-to-cancel',
    '엑스박스 게임 패스':
        'https://support.xbox.com/help/subscriptions-billing/manage-subscriptions/xbox-game-pass-how-to-cancel',
  };

  // 모든 서비스 매핑을 합친 맵
  static Map<String, String> get allServices => {
        ...ottServices,
        ...musicServices,
        ...storageServices,
        ...aiServices,
        ...programmingServices,
        ...officeTools,
        ...lifestyleServices,
        ...shoppingServices,
        ...telecomServices,
        ...otherServices,
      };

  /// 서비스 카테고리 찾기
  static String? getCategoryForService(String serviceName) {
    final lowerName = serviceName.toLowerCase();

    if (ottServices.containsKey(lowerName)) return 'ott';
    if (musicServices.containsKey(lowerName)) return 'music';
    if (storageServices.containsKey(lowerName)) return 'storage';
    if (aiServices.containsKey(lowerName)) return 'ai';
    if (programmingServices.containsKey(lowerName)) return 'programming';
    if (officeTools.containsKey(lowerName)) return 'office';
    if (lifestyleServices.containsKey(lowerName)) return 'lifestyle';
    if (shoppingServices.containsKey(lowerName)) return 'shopping';
    if (telecomServices.containsKey(lowerName)) return 'telecom';
    if (otherServices.containsKey(lowerName)) return 'other';

    return null;
  }
}
