o
    j>i«  ã                   @   sš   d dl mZmZ d dlZd dlmZ d dlmZ d dl	m	Z	m
Z
mZ dd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdedefdd„ZdS )é    )ÚListÚDictN)ÚB_DB_CONFIG)Úlogger)ÚdatetimeÚtimezoneÚ	timedeltac              
   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 )NzGINSERT INTO daily_log (session_id, sender, message) VALUES (%s, %s, %s)zDaily Log Save Error: © )ÚmysqlÚ	connectorÚconnectr   ÚcursorÚexecuteÚcommitÚcloseÚ	Exceptionr   Úerror)Ú
session_idÚsenderÚmessageÚconnr   ÚsqlÚer	   r	   ú9/home/air/goalskill_t/back/app/models/report_db_module.pyÚsave_daily_log   s   €ÿr   c           	   
   C   s    z4t jjdi t¤Ž}| ¡ }d}| || ||||f¡ | ¡  | ¡  | ¡  t 	d|› d| › ¡ W d S  t
yO } zt d|› ¡ W Y d }~d S d }~ww )Nzš
            INSERT INTO daily_note 
            (session_id, date, learning, today_mindset, ai_comment) 
            VALUES (%s, %s, %s, %s, %s)
        zDaily Note Saved: z - zDaily Note Save Error: r	   ©r
   r   r   r   r   r   r   r   r   Úinfor   r   )	r   ÚdateÚlearningÚmindsetÚ
ai_commentr   r   r   r   r	   r	   r   Úsave_structured_diary   s   €ÿr!   c              
   C   óˆ   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©Ú
dictionaryzWSELECT sender, message, created_at FROM daily_log WHERE session_id = %s ORDER BY id ASCzDaily Log Load Error: r	   ©r
   r   r   r   r   r   Úfetchallr   r   r   r   )r   r   r   r   Úrowsr   r	   r	   r   Úget_daily_log_from_db0   s   €þr(   c              
   C   r"   )NTr#   zz
            SELECT * FROM daily_note 
            WHERE session_id = %s 
            ORDER BY date DESC, id DESC
        zAll Daily Notes Load Error: r	   r%   )r   r   r   r   Úresultsr   r	   r	   r   Úget_all_daily_notes@   s   €þr*   c              
   C   s†   z't jjdi t¤Ž}|jdd}d}| || f¡ | ¡ }| ¡  | ¡  |W S  tyB } zt	 
d|› ¡ W Y d }~d S d }~ww )NTr#   z
            SELECT * FROM daily_note 
            WHERE session_id = %s 
            ORDER BY date DESC, id DESC 
            LIMIT 1
        zLatest Data Load Error: r	   )r
   r   r   r   r   r   Úfetchoner   r   r   r   )r   r   r   r   Úresultr   r	   r	   r   Úget_yesterday_dataV   s   €þr-   c              
   C   s¦   z7t tddƒ}t |¡ d¡}tjjdi t¤Ž}|j	dd}d}| 
|| |f¡ | ¡ }| ¡  | ¡  |W S  tyR } zt d|› ¡ W Y d }~d S d }~ww )	Né	   ©Úhoursú%Y-%m-%dTr#   zUSELECT * FROM daily_note WHERE session_id = %s AND date = %s ORDER BY id DESC LIMIT 1zToday Data Load Error: r	   )r   r   r   ÚnowÚstrftimer
   r   r   r   r   r   r+   r   r   r   r   )r   ÚJSTÚ	today_strr   r   r   r,   r   r	   r	   r   Úget_today_datam   s    €þr6   c              
   C   s–   z/t jjdi t¤Ž}| ¡ }d}| |||| f¡ | ¡  | ¡  | ¡  t 	d| › ¡ W d S  t
yJ } zt d|› ¡ W Y d }~d S d }~ww )Nz@UPDATE daily_note SET ai_comment = %s, advice = %s WHERE id = %szUpdated AI Feedback for ID: zAI Feedback Update Error: r	   r   )r   r    Úadvicer   r   r   r   r	   r	   r   Úupdate_yesterday_ai_feedback   s   €ÿr8   c              
   C   s¬   z:t jjdi t¤Ž}| ¡ }d}| ||| |f¡ | ¡  |j}| ¡  | ¡  t	 
d| › d|› d|› ¡ |dkW S  tyU } zt	 d|› ¡ W Y d }~dS d }~ww )	NzKUPDATE daily_note SET boss_comment = %s WHERE session_id = %s AND date = %szUpdated Boss Comment for z on z. Affected: r   zBoss Comment Update Error: Fr	   )r
   r   r   r   r   r   r   Úrowcountr   r   r   r   r   )r   r   Úboss_commentr   r   r   Ú	row_countr   r	   r	   r   Úupdate_boss_comment”   s    
€þr<   r   Úreturnc           	   
   C   sÈ   d }z<t tddƒ}t |¡}| d¡}tjjdi t¤Ž}| 	¡ }d}| 
|| |f¡ | ¡ }| ¡  | ¡  |r<dW S dW S  tyc } zt d|› ¡ |rX| ¡ rX| ¡  W Y d }~dS d }~ww )	Nr.   r/   r1   zESELECT id FROM daily_note WHERE session_id = %s AND date = %s LIMIT 1TFzCheck Today Log Error: r	   )r   r   r   r2   r3   r
   r   r   r   r   r   r+   r   r   r   r   Úis_connected)	r   r   r4   r2   r5   r   r   Úrowr   r	   r	   r   Úcheck_today_daily_log_exists«   s(   

€ür@   )Útypingr   r   Úmysql.connectorr
   Úapp.core.configr   Úapp.corer   r   r   r   r   r!   r(   r*   r-   r6   r8   r<   ÚstrÚboolr@   r	   r	   r	   r   Ú<module>   s    