o
    Ki                     @   s   d dl Zd dlmZmZ d dlmZmZmZ edZ	de
dede
defd	d
Zde
de
defddZde
de
fddZde
defddZde
dee fddZde
dee fddZde
fddZdS )    N)get_db_configlogger)ListDictOptional
Sales_A_DB
session_idquestion_idselected_optionvaluec              
   C   s   d}zDz-t jjdi t}| }d}||| |||f |  |jW W |r0|  |  S S  t	yF } z
t
d|  |d}~ww |rR|  |  w w )u   
    human_os 답변 저장 (human_os_log 테이블)
    
    Args:
        session_id: 세션 ID
        question_id: 문제 ID
        selected_option: 선택한 답변
        value: 선택한 답변의 값
    Nz
            INSERT INTO human_os_log 
            (session_id, question_id, selected_option, value)
            VALUES (%s, %s, %s, %s)
        zhuman_os Answer Save Error:  )mysql	connectorconnectA_DB_CONFIGcursorexecutecommit	lastrowidclose	Exceptionr   error)r   r	   r
   r   connr   sqler   r   </home/air/goalskill_sales/back/app/models/human_os_module.pysave_answer   s*   


r   
Node_scoreoutput_valuec              
   C   s   d }zQz+t jjdi t}| }d}||| ||f |  td|   t	| | W n t
yD } z
td|  |d }~ww W |rR|  |  d S d S |r_|  |  w w )Na  
            INSERT INTO human_os_Output 
            (session_id, Node_score, output_value)
            VALUES (%s, %s, %s)
            ON DUPLICATE KEY UPDATE
                Node_score = VALUES(Node_score),
                output_value = VALUES(output_value)
        z#human_os_Output saved for session: zhuman_os Output Save Error: r   )r   r   r   r   r   r   r   r   infosync_to_user_profile_summaryr   r   r   )r   r   r   r   r   r   r   r   r   r   save_or_update_output2   s0   	
r!   c              
   C   s   d}zOz%t jjdi t}| }d}||| |f |  td|   W n t	yB } zt
d|  W Y d}~nd}~ww W |rP|  |  dS dS |r]|  |  w w )uH    人間OS 6軸 완료 시 user_profile_summary 테이블에도 동기화Nz
            INSERT INTO user_profile_summary
            (session_id, human_os_score)
            VALUES (%s, %s)
            ON DUPLICATE KEY UPDATE
                human_os_score = VALUES(human_os_score),
                updated_at = NOW()
        z5human_os synced to user_profile_summary for session: zhuman_os Summary Sync Error: r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r    W   s*   
r    returnc              
   C   s   d}zXz/t jjdi t}| }d}||| f | }|r$|d ndW W |r2|  |  S S  tyZ } zt	
d|  W Y d}~W |rT|  |  dS dS d}~ww |rf|  |  w w )u"   현재 답변한 문제 수 조회Nz7SELECT COUNT(*) FROM human_os_log WHERE session_id = %sr   zhuman_os Answer Count Error: r   r   r   r   r   r   r   fetchoner   r   r   r   r   r   r   r   resultr   r   r   r   get_answer_countx   s2   

r(   c              
   C   s   d}zTz+t jjdi t}|jdd}d}||| f | }|W W |r.|  |  S S  tyV } zt	
d|  g W  Y d}~W |rQ|  |  S S d}~ww |rb|  |  w w )u   전체 답변 조회NT
dictionaryz
            SELECT question_id, value
            FROM human_os_log
            WHERE session_id = %s
            ORDER BY question_id
        zhuman_os All Answers Error: r   )r   r   r   r   r   r   fetchallr   r   r   r   )r   r   r   r   resultsr   r   r   r   get_all_answers   s2   


r-   c              
   C   s   d}zTz+t jjdi t}|jdd}d}||| f | }|W W |r.|  |  S S  tyV } zt	
d|  W Y d}~W |rP|  |  dS dS d}~ww |rb|  |  w w )u$   human_os_Output 최종 결과 조회NTr)   z3SELECT * FROM human_os_Output WHERE session_id = %szhuman_os_Output Get Error: r   r$   r&   r   r   r   
get_output   s2   

r.   c              
   C   s   d}zNz$t jjdi t}| }d}||| f |  td|   W n t	yA } zt
d|  W Y d}~nd}~ww W |rO|  |  dS dS |r\|  |  w w )uE   
    테스트 시작 시 이전 기록 초기화 (재시작용)
    Nz.DELETE FROM human_os_log WHERE session_id = %szhuman_os Session Cleared: zhuman_os Session Clear Error: r   r"   )r   r   r   r   r   r   r   r   clear_session_logs   s(   
r/   )mysql.connectorr   app.core.configr   r   typingr   r   r   r   strintfloatr   r!   r    r(   r-   r.   r/   r   r   r   r   <module>   s   &%!