class MBTIType {
  final String code; // e.g. "ISTJ"
  final String title; // e.g. "伝統の守護者"
  final String catchphrase; // e.g. "浮ついた酒はいらない..."
  final String description; // Short analysis (not in table but useful if we add later, currently just using table data)
  final String recommendedStyles; // e.g. "生酛・山廃 / 燗酒"
  final List<String> favorableTags; // Keywords for recommendation matching

  const MBTIType({
    required this.code,
    required this.title,
    required this.catchphrase,
    required this.description,
    required this.recommendedStyles,
    required this.favorableTags,
  });

  static MBTIType unknown() {
    return const MBTIType(
      code: "UNKNOWN",
      title: "未知の飲兵衛",
      catchphrase: "データが足りない... もっと飲んで記録しよう！",
      description: "まだあなたの傾向を掴めていません。",
      recommendedStyles: "まずは色々な種類を飲んでみましょう",
      favorableTags: [],
    );
  }

  static const Map<String, MBTIType> types = {
    "ISTJ": MBTIType(
      code: "ISTJ",
      title: "伝統の守護者",
      catchphrase: "浮ついた酒はいらない。本物が一杯あればいい。",
      description: "伝統と歴史を重んじるあなた。",
      recommendedStyles: "生酛・山廃 / 燗酒 (伝統製法)",
      favorableTags: ["生酛", "山廃", "燗酒", "伝統", "純米", "本醸造", "クラシック"],
    ),
    "ISFJ": MBTIType(
      code: "ISFJ",
      title: "癒やしの晩酌医",
      catchphrase: "あなたの疲れを、優しく包み込みたい。",
      description: "心安らぐ一杯を求めるあなた。",
      recommendedStyles: "特別純米 / ぬる燗 (優しい味)",
      favorableTags: ["特別純米", "ぬる燗", "優しい", "まろやか", "癒やし", "甘口"],
    ),
    "INFJ": MBTIType(
      code: "INFJ",
      title: "予言する杜氏",
      catchphrase: "この酒が化けるのが、私には視える。",
      description: "本質と未来を見通すあなた。",
      recommendedStyles: "熟成酒 / 古酒 (深みと未来)",
      favorableTags: ["熟成", "古酒", "秘蔵", "深み", "複雑", "神秘的"],
    ),
    "INTJ": MBTIType(
      code: "INTJ",
      title: "冷徹なブレンダー",
      catchphrase: "完璧な一杯。それ以外は水と同じだ。",
      description: "至高の完成度を求めるあなた。",
      recommendedStyles: "大吟醸 / 斗瓶囲い (完璧な設計)",
      favorableTags: ["大吟醸", "純米大吟醸", "斗瓶", "雫", "完璧", "高品質", "品評会"],
    ),
    "ISTP": MBTIType(
      code: "ISTP",
      title: "孤高のきき酒師",
      catchphrase: "語るな。舌で感じろ。",
      description: "五感での体験を信じるあなた。",
      recommendedStyles: "無濾過生原酒 (荒々しい真実)",
      favorableTags: ["無濾過", "生原酒", "直汲み", "荒走り", "フレッシュ", "パンチ"],
    ),
    "ISFP": MBTIType(
      code: "ISFP",
      title: "陶酔のアーティスト",
      catchphrase: "美しくない酔い方なんて、したくない。",
      description: "美意識と雰囲気を愛するあなた。",
      recommendedStyles: "微発泡 / ワイングラス (美意識)",
      favorableTags: ["微発泡", "スパークリング", "ワイングラス", "華やか", "フルーティー", "美しい"],
    ),
    "INFP": MBTIType(
      code: "INFP",
      title: "夢見る吟醸詩人",
      catchphrase: "酒の中に、銀河が見える夜もある。",
      description: "物語と情緒を大切にするあなた。",
      recommendedStyles: "季節限定 / 花酵母 (物語性)",
      favorableTags: ["季節限定", "花酵母", "物語", "ロマン", "雪", "桜", "月"],
    ),
    "INTP": MBTIType(
      code: "INTP",
      title: "酵母の解読者",
      catchphrase: "なぜ旨いのか？その化学式を知りたい。",
      description: "理論と仕組みを探求するあなた。",
      recommendedStyles: "実験醸造 / 低アルコール (先進性)",
      favorableTags: ["実験", "低アルコール", "酸度", "理論", "モダン", "革新"],
    ),
    "ESTP": MBTIType(
      code: "ESTP",
      title: "限界突破の宴人",
      catchphrase: "今宵は帰さない！次、いってみよう！",
      description: "瞬間を全力で楽しむあなた。",
      recommendedStyles: "高アルコール / 原酒 (インパクト)",
      favorableTags: ["高アルコール", "原酒", "鬼", "超辛口", "豪快", "ロック"],
    ),
    "ESFP": MBTIType(
      code: "ESFP",
      title: "乾杯のアイドル",
      catchphrase: "私がいる場所が、一番盛り上がる場所！",
      description: "場を華やかに盛り上げるあなた。",
      recommendedStyles: "スパークリング / ピンク濁り (映え)",
      favorableTags: ["スパークリング", "にごり", "ピンク", "赤色", "映え", "パーティー"],
    ),
    "ENFP": MBTIType(
      code: "ENFP",
      title: "愛を注ぐ伝道師",
      catchphrase: "全人類に、この酒の尊さを伝えたい！",
      description: "好きを広めたい情熱的なあなた。",
      recommendedStyles: "コラボ酒 / ジャケ買い (話題性)",
      favorableTags: ["コラボ", "ジャケット", "可愛い", "人気", "話題", "愛"],
    ),
    "ENTP": MBTIType(
      code: "ENTP",
      title: "革命的ドランカー",
      catchphrase: "常識？そんなの肴にもならないね。",
      description: "新しい刺激と変化を好むあなた。",
      recommendedStyles: "変態スペック / 貴醸酒 (型破り)",
      favorableTags: ["貴醸酒", "変態", "唯一無二", "個性的", "クレイジー", "熟成"],
    ),
    "ESTJ": MBTIType(
      code: "ESTJ",
      title: "規律の燗酒師",
      catchphrase: "酒道とは、嗜みと節度である。",
      description: "秩序と形式を重んじるあなた。",
      recommendedStyles: "辛口本醸造 / 一級酒 (規律)",
      favorableTags: ["辛口", "本醸造", "キレ", "淡麗", "正統派", "硬派"],
    ),
    "ESFJ": MBTIType(
      code: "ESFJ",
      title: "気配りの女将",
      catchphrase: "さあ、もう一杯。お水も飲みましたか？",
      description: "調和と安心感を大切にするあなた。",
      recommendedStyles: "スタンダード純米 / 地酒 (安心感)",
      favorableTags: ["純米", "食中酒", "バランス", "安心", "地酒", "定番"],
    ),
    "ENFJ": MBTIType(
      code: "ENFJ",
      title: "情熱の蔵元",
      catchphrase: "みんなの笑顔が、最高のアテになる。",
      description: "理想と共感を追い求めるあなた。",
      recommendedStyles: "純米吟醸 / 4合瓶シェア (共感)",
      favorableTags: ["純米吟醸", "シェア", "みんな", "笑顔", "贈り物", "華やか"],
    ),
    "ENTJ": MBTIType(
      code: "ENTJ",
      title: "覇道の酒将軍",
      catchphrase: "この酒蔵を買い取るにはいくら必要だ？",
      description: "高みを目指し支配するあなた。",
      recommendedStyles: "最高級純米大吟醸 / BOX入り (支配)",
      favorableTags: ["最高級", "純米大吟醸", "金賞", "プレミアム", "箱入り", "王"],
    ),
  };
}
