o
    ¼ã…io  ã                   @   sV   d dl mZmZ dedefdd„Zdededefdd„Zd	ed
ee defdd„ZdS )é    )ÚDictÚListÚscoreÚreturnc                 C   s(   | dkrdS | dkrdS | dkrdS dS )uõ   
    ì ìˆ˜ì— ë”°ë¥¸ ë ˆë²¨ íŒì •
    - 15~20ë¬¸ì œ: ä¸Šç´š (HIGH)
    - 10~14ë¬¸ì œ: ä¸­ç´š
    - 5~9ë¬¸ì œ: åˆç´š
    - 0~4ë¬¸ì œ: å…¥é–€
    
    Args:
        score: ë§žížŒ ë¬¸ì œ ìˆ˜ (0~20)
    
    Returns:
        ë ˆë²¨ ë¬¸ìžì—´
    é   õ   ä¸Šç´šé
   õ   ä¸­ç´šé   õ   åˆç´šõ   å…¥é–€© )r   r   r   ú9/home/air/goalskill_sales/back/app/services/it_scoring.pyÚcalculate_level   s   r   Úlevelc                 C   s:   d|› dd|› dd|› dd|› ddœ}|  | d¡S )	uº   
    ë ˆë²¨ë³„ ë©˜íŠ¸ ìƒì„±
    
    Args:
        level: ë ˆë²¨ (ä¸Šç´š/ä¸­ç´š/åˆç´š/å…¥é–€)
        score: ë§žížŒ ë¬¸ì œ ìˆ˜
    
    Returns:
        ë ˆë²¨ë³„ ì•ˆë‚´ ë©”ì‹œì§€
    u   ç´ æ™´ã‚‰ã—ã„ã§ã™ï¼uà   å•æ­£è§£ã§ã€Œä¸Šç´šã€ãƒ¬ãƒ™ãƒ«ã§ã™ã€‚

ã‚ãªãŸã¯ITã®åŸºç¤ŽçŸ¥è­˜ãŒã—ã£ã‹ã‚Šã¨èº«ã«ã¤ã„ã¦ã„ã¾ã™ã€‚
å®Ÿå‹™ãƒ¬ãƒ™ãƒ«ã®ã‚«ãƒªã‚­ãƒ¥ãƒ©ãƒ ã§ã€ã•ã‚‰ã«é«˜åº¦ãªã‚¹ã‚­ãƒ«ã‚’ç¿’å¾—ã—ã¦ã„ãã¾ã—ã‚‡ã†ï¼u   ãŠç–²ã‚Œæ§˜ã§ã—ãŸï¼uü   å•æ­£è§£ã§ã€Œä¸­ç´šã€ãƒ¬ãƒ™ãƒ«ã§ã™ã€‚

åŸºç¤Žã¯ç†è§£ã§ãã¦ã„ã¾ã™ãŒã€ã¾ã å®Ÿå‹™ã«å¿…è¦ãªçŸ¥è­˜ãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚
ä½“ç³»çš„ã«å­¦ç¿’ã™ã‚‹ã“ã¨ã§ã€ç¢ºå®Ÿã«ãƒ¬ãƒ™ãƒ«ã‚¢ãƒƒãƒ—ã§ãã¾ã™ã€‚ä¸€ç·’ã«é ‘å¼µã‚Šã¾ã—ã‚‡ã†ï¼uÝ   å•æ­£è§£ã§ã€Œåˆç´šã€ãƒ¬ãƒ™ãƒ«ã§ã™ã€‚

ITã®åŸºç¤Žã‚’å°‘ã—ãšã¤ç†è§£ã—å§‹ã‚ã¦ã„ã¾ã™ã€‚
ç„¦ã‚‰ãšã€åŸºç¤Žã‹ã‚‰ã—ã£ã‹ã‚Šã¨å­¦ã‚“ã§ã„ãã“ã¨ã§ã€ç€å®Ÿã«æˆé•·ã§ãã¾ã™ã€‚å¿œæ´ã—ã¦ã„ã¾ã™ï¼uã   å•æ­£è§£ã§ã€Œå…¥é–€ã€ãƒ¬ãƒ™ãƒ«ã§ã™ã€‚

ITã®ä¸–ç•Œã¯åºƒã„ã§ã™ãŒã€ä¸€æ­©ãšã¤å­¦ã‚“ã§ã„ã‘ã°å¿…ãšç†è§£ã§ãã¾ã™ã€‚
åŸºç¤Žã‹ã‚‰ä¸å¯§ã«å­¦ã¹ã‚‹ã‚«ãƒªã‚­ãƒ¥ãƒ©ãƒ ã§ã€ä¸€ç·’ã«ã‚¹ã‚¿ãƒ¼ãƒˆã—ã¾ã—ã‚‡ã†ï¼)r   r	   r   r   u   è¨ºæ–­ãŒå®Œäº†ã—ã¾ã—ãŸã€‚©Úget)r   r   Úmessagesr   r   r   Úget_level_message   s   



ïr   Ú
session_idÚanswersc                 C   sH   ddl m} t|ƒ ƒ}tdd„ |D ƒƒ}t|ƒ}t||ƒ}||||dœS )ud  
    ìµœì¢… ê²°ê³¼ ê³„ì‚°
    
    Args:
        session_id: ì„¸ì…˜ ID
        answers: ë‹µë³€ ë¦¬ìŠ¤íŠ¸ [{"question_id": 1, "selected_answer": "A", "is_correct": True}, ...]
    
    Returns:
        {
            "total_score": 15,
            "level": "ä¸Šç´š",
            "message": "ë ˆë²¨ë³„ ë©˜íŠ¸",
            "total_questions": 20
        }
    r   )Úget_it_questionsc                 s   s     | ]}|  d d¡rdV  qdS )Ú
is_correctFé   Nr   )Ú.0Úansr   r   r   Ú	<genexpr>V   s   € z)calculate_final_result.<locals>.<genexpr>)Útotal_scorer   ÚmessageÚtotal_questions)Úapp.services.it_questionsr   ÚlenÚsumr   r   )r   r   r   r   Úcorrect_countr   r   r   r   r   Úcalculate_final_resultC   s   

ür$   N)Útypingr   r   ÚintÚstrr   r   r$   r   r   r   r   Ú<module>   s   %