# app/services/mbti_tips.py

MBTI_STUDY_TIPS = {
    "INTJ": [
        "独立したプロジェクトや深い研究中心の学習が効果的",
        "システム全体の構造と論理を先に理解することが重要",
        "概念的・理論的なアプローチを好み、抽象的な問題解決に強い",
        "自分のペースに合わせて計画的に学習することをおすすめします"
    ],
    "INTP": [
        "新しい技術や原理を分析・探求する学習が効果的",
        "決められた枠組みより、自律的で柔軟な学習環境を好む",
        "複雑な問題を様々な視点からアプローチして解決策を導き出す",
        "理論的な限界を超えるクリエイティブなプログラミングに向いている"
    ],
    "ENTJ": [
        "明確な目標設定と体系的なカリキュラムに基づく学習が効果的",
        "スタディやプロジェクトでリーダーの役割を担い主導的に学習",
        "効率性と実用性を重視し、学んだことをすぐに適用",
        "難しい課題や競争の激しい環境で成果が向上する"
    ],
    "ENTP": [
        "ディスカッションやアイデア共有によるインタラクティブな学習が効果的",
        "様々な分野の知識を結びつけ、新しいアプローチを試みる",
        "ルーチン化された反復学習より、変化と刺激のある環境を好む",
        "プロトタイプを素早く作りながら学ぶ「実行中心」の学習をおすすめします"
    ],
    "INFJ": [
        "静かで集中できる環境での深く掘り下げる学習が効果的",
        "自分の学習が究極的にどのような良い影響を与えるか、意味付けが重要",
        "仲間との1対1のメンタリングや小規模スタディで相乗効果が生まれる",
        "全体的なビジョンを先に描いてから詳細を把握する方式を好む"
    ],
    "INFP": [
        "個人的な価値観や興味・関心と結びついたプロジェクト学習が効果的",
        "創造性と自己表現が可能な柔軟な学習環境を好む",
        "機械的な暗記より、ストーリーや意味を通じた理解が早い",
        "学習の過程で十分な時間と内省のための余裕が必要"
    ],
    "ENFJ": [
        "他の人と協力し、知識を分かち合うスタディグループが効果的",
        "視覚的資料や人との相互作用を通じた学習で相乗効果が生まれる",
        "構造化された環境でスケジュールに合わせて着実に学習することが得意",
        "フィードバックをやり取りしながら共に成長する過程でモチベーションを得る"
    ],
    "ENFP": [
        "多様なテーマを探求し、好奇心を刺激する学習が効果的",
        "厳格なルールより、ブレインストーミングや自由なディスカッションを好む",
        "概念の核心を素早く把握し、新技術の可能性を探るのが得意",
        "短期目標を複数設定し、継続的な興味を維持することをおすすめします"
    ],
    "ISTJ": [
        "段階的かつ体系的に整理されたカリキュラムに従う学習が効果的",
        "明確なガイドラインと実用的な例題を用いた理解が早い",
        "几帳面で正確な性格のため、デバッグやコードレビューに強み",
        "邪魔の入らない環境で、一人で集中して目標を達成することを好む"
    ],
    "ISFJ": [
        "安定して予測可能な環境での着実な反復学習が効果的",
        "具体的で実務的な技術ガイドラインやマニュアルを好む",
        "親しい人との小規模な協業やメンタリングを通じた学習に向いている",
        "学んだことを細かくメモして整理し、学習効率を高める"
    ],
    "ESTJ": [
        "スタディグループやディスカッションに基づいた学習が効果的",
        "段階的な実習と具体的な例題を中心とした学習が効果的",
        "論理的な構造や原理の理解を中心とした学習が効果的",
        "体系的な計画やマイルストーンに基づいた学習が効果的"
    ],
    "ESFJ": [
        "構造化された授業環境と明確な期待値のある学習が効果的",
        "仲間とフィードバックを交わしながら共に取り組む学習環境を好む",
        "実務にすぐ適用できる実用的な技術中心の学習をおすすめします",
        "学んだ内容を他人に説明することで完璧に理解する傾向がある"
    ],
    "ISTP": [
        "理論より、実際にコードを書いてみるハンズオン（Hands-on）実習が効果的",
        "原理を把握するためにシステムを分解して実験することを好む",
        "退屈な反復より、問題解決やトラブルシューティングの状況で集中力を発揮",
        "必要な時に必要な知識だけを効率的に探して使う実用的な学習をおすすめします"
    ],
    "ISFP": [
        "視覚的資料や実習 중심の柔軟でリラックスできる学習環境が効果的",
        "厳格なスケジュールより、自分のリズムに合わせた自律的な学習を好む",
        "UI/UXなど審美的、感覚的な結果がすぐに現れるプロジェクトに興味を持つ",
        "理論的な概念を実際の事例や具体的なケースを通じて理解する傾向がある"
    ],
    "ESTP": [
        "活動的で刺激のある実践的なプロジェクト中心の学習が効果的",
        "長い説明書より、まずは実行して試行錯誤を通じて学ぶ方式を好む",
        "競争要素があったり、結果がすぐに現れる短いサイクルの学習に向いている",
        "柔軟性と瞬発力に優れ、新しいツールやフレームワークに素早く適応する"
    ],
    "ESFP": [
        "多様な人々と交流し、活動的なチームプロジェクト学習が効果的",
        "視覚的で相互作用の多いマルチメディア資料を活用した学習を好む",
        "厳格で乾燥した理論より、実生活にすぐ役立つ楽しい実習をおすすめします",
        "学習環境自体が退屈せず、楽しい経験になるよう工夫が必要"
    ]
}

def get_mbti_tips(mbti_type: str) -> list:
    """
    MBTIタイプに合ったおすすめの学習スタイル（Tip）リストを返す
    """
    if not mbti_type or len(mbti_type) < 4:
        return []
    base = mbti_type[:4].upper()
    return MBTI_STUDY_TIPS.get(base, [])
