o
    i$                     @   s   d dl mZmZ d dlZd dlmZmZ d dlm	Z	 dd Z
dd Z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fddZdS )    )ListDictN)get_db_connectionlogger)A_DB_CONFIGc              
   C   s   z't jjdi t}| }d}||| ||f |  |  |  W d S  tyB } zt	
d|  W Y d }~d S d }~ww )NzJINSERT INTO chat_history (session_id, sender, message) VALUES (%s, %s, %s)zChat DB Save Error:  )mysql	connectorconnectr   cursorexecutecommitclose	Exceptionr   error)
session_idsendermessageconnr   sqler   r   7/home/air/goalskill_t/back/app/models/general_module.pysave_chat_log   s   r   c              
   C   s   z't jjdi t}|jdd}d}||| f | }|  |  |W S  tyC } zt	
d|  g W  Y d }~S d }~ww )NT
dictionaryzNSELECT sender, message FROM chat_history WHERE session_id = %s ORDER BY id ASCzChat DB Load Error: r   )r   r	   r
   r   r   r   fetchallr   r   r   r   )r   r   r   r   rowsr   r   r   r   get_history_from_db   s   r   r   returnc              
   C   s   d }zmzEt jjdi t}|jdd}d}||| f | }|d u r4W W |r2|  |  dS dS |ddp;dW W |rH|  |  S S  t	yo } zt
d|  W Y d }~W |ri|  |  dS dS d }~ww |r{|  |  w w )NTr   zr
            SELECT a_part_status
            FROM user_profile_summary
            WHERE session_id = %s
        r   a_part_statuszGet A Part Status Error: r   )r   r	   r
   r   r   r   fetchoner   getr   printr   r   r   r   rowr   r   r   r   get_a_part_status#   s>   

r%   statusc              
   C   s   d }zFzt jjdi t}| }d}||| |f |  W n ty9 } ztd|  W Y d }~nd }~ww W |rG|	  |	  d S d S |rT|	  |	  w w )Nz
            INSERT INTO user_profile_summary (session_id, a_part_status)
            VALUES (%s, %s)
            ON DUPLICATE KEY UPDATE
                a_part_status = VALUES(a_part_status),
                updated_at = NOW()
        zUpdate A Part Status Error: r   )
r   r	   r
   r   r   r   r   r   r"   r   )r   r&   r   r   r   r   r   r   r   update_a_part_status;   s&   
r'   c              
   C   s   d}zmzDt jjdi t}|jdd}d}||| f | }|r8|dr8|d W W |r7|  |  S S W W |rF|  |  dS dS  t	yo } zt
d|  W Y d}~W |ri|  |  dS dS d}~ww |r{|  |  w w )u   유저 이름 조회NTr   zm
            SELECT username
            FROM user_profile_summary
            WHERE session_id = %s
        usernamezGet Username Error: r   )r   r	   r
   r   r   r   r    r!   r   r   r   r   r#   r   r   r   get_usernameP   s>   


r)   r(   c              
   C   s   d}zGzt jjdi t}| }d}||| |f |  W n ty: } zt	d|  W Y d}~nd}~ww W |rH|
  |
  dS dS |rU|
  |
  w w )u   유저 이름 저장Nz
            INSERT INTO user_profile_summary (session_id, username)
            VALUES (%s, %s)
            ON DUPLICATE KEY UPDATE
                username = VALUES(username),
                updated_at = NOW()
        zSave Username Error: r   )r   r	   r
   r   r   r   r   r   r   r   r   )r   r(   r   r   r   r   r   r   r   save_usernameh   s&   
r*   )typingr   r   mysql.connectorr   app.corer   r   app.core.configr   r   r   strintr%   r'   r)   r*   r   r   r   r   <module>   s    