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	 e	dƒZ
e	dƒZdd„ Zd	d
„ 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edefdd„ZdS )é    )ÚListÚDictN)Úget_db_connectionÚlogger)Úget_db_configÚ
Sales_A_DBÚ
Sales_B_DBc              
   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ÚconnectÚA_DB_CONFIGÚcursorÚexecuteÚcommitÚcloseÚ	Exceptionr   Úerror©Ú
session_idÚsenderÚmessageÚconnr   ÚsqlÚer	   r	   ú;/home/air/goalskill_sales/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"   c              
   C   sÌ   zQzt jjdi t¤Ž}| ¡ }d}| || ||f¡ | ¡  W n ty9 } zt 	d|› ¡ W Y d }~nd }~ww W dt
ƒ v rN| ¡ rP| ¡  | ¡  d S d S d S dt
ƒ v rd| ¡ re| ¡  | ¡  w w w )NzHINSERT INTO daily_logs (session_id, sender, message) VALUES (%s, %s, %s)zDaily Log Save Error: r   r	   )r
   r   r   ÚB_DB_CONFIGr   r   r   r   r   r   ÚlocalsÚis_connectedr   r   r	   r	   r   Úsave_daily_log-   s$   €ÿ€þ
þr&   c              
   C   sò   zdz3t jjdi t¤Ž}|jdd}d}| || f¡ | ¡ }|W W dtƒ v r3| ¡ r4| 	¡  | 	¡  S S S  t
yd } z$t d|› ¡ g W  Y d }~W dtƒ v r^| ¡ r_| 	¡  | 	¡  S S S d }~ww dtƒ v rw| ¡ rx| 	¡  | 	¡  w w w )NTr   zXSELECT sender, message, created_at FROM daily_logs WHERE session_id = %s ORDER BY id ASCr   zDaily Log Load Error: r	   )r
   r   r   r#   r   r   r   r$   r%   r   r   r   r   r    r	   r	   r   Úget_daily_log_from_db;   s0   
þü
þ€ü
þr'   r   Úreturnc              
   C   sø   zgz5t jjdi t¤Ž}|jdd}d}| || f¡ | ¡ }|d uW W dtƒ v r5| ¡ r6| 	¡  | 	¡  S S S  t
yg } z%t d|› ¡ W Y d }~W dtƒ v r_| ¡ ra| 	¡  | 	¡  dS dS dS d }~ww dtƒ v rz| ¡ r{| 	¡  | 	¡  w w w )NTr   z‡
            SELECT id FROM daily_logs 
            WHERE session_id = %s AND DATE(created_at) = CURDATE()
            LIMIT 1
        r   zCheck Today Daily Log Error: Fr	   )r
   r   r   r#   r   r   Úfetchoner$   r%   r   r   r   r   ©r   r   r   r   Úrowr   r	   r	   r   Úcheck_today_daily_log_existsK   s0   

þüþ€ü
þr,   c              
   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   r)   r   Úgetr   Úprintr*   r	   r	   r   Úget_a_part_statusc   s>   þû
þüþ€ü
þr0   Ú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   r1   r   r   r   r   r	   r	   r   Úupdate_a_part_status{   s&   €ÿ€þ
þr2   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_username   s>   

þûþüþ€ü
þr4   r3   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   r3   r   r   r   r   r	   r	   r   Úsave_username¨   s&   €ÿ€þ
þr5   )Útypingr   r   Úmysql.connectorr
   Úapp.corer   r   Úapp.core.configr   r   r#   r   r"   r&   r'   ÚstrÚboolr,   Úintr0   r2   r4   r5   r	   r	   r	   r   Ú<module>   s    