
    Ui^                     v    d dl mZmZmZ d dlmZmZ ddedededed	e	f
d
Z
	 	 	 	 dde	dededededed	efdZdS )    )DictListOptional)get_question_by_idget_level_name
   Nassigned_levelcorrect_counttotal_in_levelwrong_detailsreturnc                     | dk    rt          |           nd}| dk    r	||k    rd}nL| dk    rd}nCdddd	}|                    | d
          }||k    r
d| d| d}n||z
  }d| d| d| d| d| d}	 |S )u  
    レベルに応じたメッセージ生成 (AI フィードバック付き)

    Args:
        assigned_level: 付与されるレベル (0~3)
        correct_count: そのレベルでの正解数
        total_in_level: そのレベルの総問題数
        wrong_details: 不正解の詳細リスト [{question, correct_answer, reason}, ...]

    Returns:
        レベル別案内メッセージ + 不正解フィードバック
    r      入門   u   素晴らしい！全レベルクリア！🎉

Pythonの基礎から応用まで、しっかりと理解できています。
実務レベルのプロジェクトに挑戦できる実力がありますね！u   お疲れ様でした！

Pythonの世界はこれからです！
基礎の基礎からじっくり学んでいきましょう。応援しています！uJ   Python基本（print・変数・データ型・条件文・繰り返し）uN   データ構造 & 関数（リスト・辞書・関数・ファイル操作）uZ   応用 & OOP（クラス・例外処理・モジュール・ラムダ・デコレータ）)      r    u   お疲れ様でした！

✅ u2   テスト全問正解です！
📚 学習範囲: uD   

ここから一緒にレベルアップしていきましょう！u   お疲れ様でした！

📊 u   テスト結果: /u   問正解
❌ 不正解: u   問
📚 学習範囲: u;   

間違えた部分を重点的に復習しましょう！)r   get)	r	   r
   r   r   
level_namebase_msglevel_topicscurrent_topicwrong_counts	            /app/app/services/it_scoring.pyget_level_messager      s<    4BA3E3E///8J}>>` 	
 
1		f 	 \_k
 

 %((<<N**V!V V&3V V V H )=8KM"M M5BM MESM M"-M M '4M M M  	O    
session_idfailed_at_levelc                 j    |dk    rt          |          nd}t          ||||          }|||d||pg dS )ui  
    最終結果計算

    Args:
        session_id: セッションID
        assigned_level: 付与されるレベル (0~3)
        correct_count: 正解数
        total_in_level: そのレベルの総問題数
        wrong_details: 不正解詳細リスト
        failed_at_level: 不合格だったレベル (None = 全クリア)

    Returns:
        {
            "total_score": assigned_level,
            "level": "初級" / "中級" / "上級",
            "message": "メッセージ",
            "total_questions": 30,
            "correct_count": N,
            "wrong_details": [...]
        }
    r   r      )total_scorelevelmessagetotal_questionsr
   r   )r   r   )r   r	   r
   r   r   r   r   r$   s           r   calculate_final_resultr&   C   s\    : 4BA3E3E///8J~}]]G &&&,"  r   )r   r   N)r   r   NN)typingr   r   r   app.services.it_questionsr   r   intliststrr   r&    r   r   <module>r-      s    ( ' ' ' ' ' ' ' ' ' H H H H H H H H8 8c 8# 8SV 8lp 8| 8 8 8 8| ' ''' ' 	'
 ' ' 
' ' ' ' ' 'r   