// Simple translation helper for Ponshu Room Lite
//
// Usage:
// ```dart
// final t = Translations(locale);
// Text(t['home'])
// ```

class Translations {
  final String locale;

  Translations(this.locale);

  static const Map<String, Map<String, String>> _translations = {
    // Navigation
    'home': {'ja': 'ホーム', 'en': 'Home'},
    'scan': {'ja': 'スキャン', 'en': 'Scan'},
    'sommelier': {'ja': 'ソムリエ', 'en': 'Sommelier'},
    'map': {'ja': 'マップ', 'en': 'Map'},
    'myPage': {'ja': 'マイページ', 'en': 'My Page'},
    'promo': {'ja': '販促', 'en': 'Promo'},
    'analytics': {'ja': '分析', 'en': 'Analytics'},
    'shop': {'ja': '店舗', 'en': 'Shop'},

    // Home Screen
    'menuCreation': {'ja': 'お品書き作成', 'en': 'Menu Creation'},
    'searchPlaceholder': {'ja': '銘柄・酒蔵・都道府県...', 'en': 'Brand, Brewery, Prefecture...'},
    'sort': {'ja': '並び替え', 'en': 'Sort'},
    'filterByPrefecture': {'ja': '都道府県で絞り込み', 'en': 'Filter by Prefecture'},
    'favoritesOnly': {'ja': 'お気に入りのみ', 'en': 'Favorites Only'},
    'helpGuide': {'ja': 'ヘルプ・ガイド', 'en': 'Help & Guide'},
    'noMenuItems': {'ja': 'お品書きに追加されたお酒はありません', 'en': 'No sake added to menu'},
    'goBackToList': {'ja': 'リスト画面に戻って、掲載したいお酒の\nチェックボックスを選択してください', 'en': 'Go back to list and select sake\nyou want to include'},
    'createMenu': {'ja': 'お品書きを作成', 'en': 'Create Menu'},
    'createSet': {'ja': 'セットを作成', 'en': 'Create Set'},
    'selectFromGallery': {'ja': 'ギャラリーから選択', 'en': 'Select from Gallery'},
    'takePhoto': {'ja': 'カメラで撮影', 'en': 'Take Photo'},

    // Sort Menu
    'sortTitle': {'ja': '並び替え', 'en': 'Sort'},
    'sortNewest': {'ja': '新しい順（登録日）', 'en': 'Newest (Registration)'},
    'sortOldest': {'ja': '古い順（登録日）', 'en': 'Oldest (Registration)'},
    'sortName': {'ja': '名前順（あいうえお）', 'en': 'By Name (A-Z)'},
    'sortCustom': {'ja': 'カスタム（ドラッグ配置）', 'en': 'Custom (Drag & Drop)'},

    // Soul Screen (My Page)
    'profile': {'ja': 'プロフィール (ID)', 'en': 'Profile (ID)'},
    'nickname': {'ja': 'ニックネーム', 'en': 'Nickname'},
    'notSet': {'ja': '未設定', 'en': 'Not Set'},
    'gender': {'ja': '性別', 'en': 'Gender'},
    'mbtiDiagnosis': {'ja': 'MBTI診断', 'en': 'MBTI Type'},
    'viewGuide': {'ja': 'ガイド・ヘルプを見る', 'en': 'View Guide & Help'},
    'otherSettings': {'ja': 'その他', 'en': 'Others'},

    // Gender
    'male': {'ja': '男性', 'en': 'Male'},
    'female': {'ja': '女性', 'en': 'Female'},
    'genderOther': {'ja': 'その他', 'en': 'Other'},
    'genderNotAnswer': {'ja': '回答しない', 'en': 'Prefer not to say'},
    'selectGender': {'ja': '性別を選択', 'en': 'Select Gender'},

    // Dialogs
    'changeNickname': {'ja': 'ニックネーム変更', 'en': 'Change Nickname'},
    'enterName': {'ja': '呼び名を入力', 'en': 'Enter your name'},
    'selectMbti': {'ja': 'MBTI タイプ選択', 'en': 'Select MBTI Type'},
    'mbtiDisclaimer': {'ja': '※AIによる独自の相性診断です。遊び心としてお楽しみください', 'en': '* AI-based compatibility analysis. For entertainment purposes only.'},

    // Common Actions
    'save': {'ja': '保存', 'en': 'Save'},
    'cancel': {'ja': 'キャンセル', 'en': 'Cancel'},
    'delete': {'ja': '削除', 'en': 'Delete'},
    'close': {'ja': '閉じる', 'en': 'Close'},
    'ok': {'ja': 'OK', 'en': 'OK'},
    'confirm': {'ja': '確認', 'en': 'Confirm'},

    // Gamification
    'levelAndTitle': {'ja': 'レベル＆称号', 'en': 'Level & Title'},
    'levelDescription': {'ja': '日本酒を登録するとEXPが貯まり、レベルアップします。\n素敵な称号を目指しましょう！', 'en': 'Register sake to earn EXP and level up.\nAim for amazing titles!'},
    'badgeCollection': {'ja': 'バッジコレクション', 'en': 'Badge Collection'},
    'badgeDescription': {'ja': '特定の条件を満たすとバッジを獲得できます。\n「地域制覇」や「辛口党」など、様々なテーマがあります。', 'en': 'Earn badges by meeting specific conditions.\nVarious themes like "Regional Master" and "Dry Sake Lover".'},

    // Business Mode Guide
    'welcomeBusinessMode': {'ja': 'ビジネスモードへようこそ', 'en': 'Welcome to Business Mode'},
    'businessModeDesc': {'ja': '飲食店様向けの機能を集約しました。\nメニュー作成から販促まで、\nプロの仕事を強力にサポートします。', 'en': 'Features for restaurant professionals.\nFrom menu creation to promotion,\npowerfully supporting your work.'},
    'setProductCreation': {'ja': 'セット商品の作成', 'en': 'Create Set Products'},
    'setProductDesc': {'ja': '飲み比べセットやコース料理など、\n複数のお酒をまとめた「セット商品」を\n簡単に作成・管理できます。', 'en': 'Easily create and manage "set products"\nlike sake tasting sets and course menus.'},
    'instaPromo': {'ja': 'インスタ販促', 'en': 'Instagram Promotion'},
    'instaPromoDesc': {'ja': '本日のおすすめをSNSですぐに発信。\nInstaタブから、美しい画像を\nワンタップで生成できます。', 'en': 'Share today\'s recommendations on SNS.\nGenerate beautiful images with one tap\nfrom the Insta tab.'},
    'salesAnalytics': {'ja': '売上分析', 'en': 'Sales Analytics'},
    'salesAnalyticsDesc': {'ja': '売れ筋や味の傾向を分析。\nお客様に喜ばれるラインナップ作りを\nデータで支援します。', 'en': 'Analyze bestsellers and taste trends.\nData-driven support for creating\na lineup customers will love.'},
  };

  /// Get translation for a key
  String operator [](String key) {
    return _translations[key]?[locale] ?? _translations[key]?['ja'] ?? key;
  }

  /// Get translation with fallback
  String get(String key, {String? fallback}) {
    return _translations[key]?[locale] ?? _translations[key]?['ja'] ?? fallback ?? key;
  }

  /// Check if translation exists
  bool has(String key) {
    return _translations.containsKey(key);
  }
}
