
    #pi                         d dl mZm Z  d dlmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZ  ee          Z G d d          ZdS )	    )datedatetime)Optional)ManualLogStorage)	DietEntryAlcoholEntrySupplementEntryBodyFeelingEntry)setup_loggerc                   <   e Zd Ze	 	 ddededee         dedef
d            Ze	 dded	ed
edee         def
d            Ze	 ddedededee         def
d            Ze	 ddedede	dedee         defd            Z
e	 ddededee         defd            ZdS )HealthWriterNsnacktarget_datedescriptiontime	meal_typereturnc                    	 t          j        |           }|p%t          j                                        d          }t          |||          }t                      }|                    ||           d|  d| S # t          $ r9}t          
                    d|            dt          |           cY d}~S d}~ww xY w)zLog a diet entry.%H:%M)r   r   r   u   ✅ Logged diet for : zFailed to log diet: u   ❌ Error logging diet: N)r   fromisoformatr   nowstrftimer   r   add_diet_entry	Exceptionloggererrorstr)	r   r   r   r   date_objtime_strentrystoragees	            5/root/projects/butler/slack_bot/tools/health_write.pylog_dietzHealthWriter.log_diet   s    	7)+66H?x|~~66w??H'#  E '((G""8U333F+FFFFF 	7 	7 	7LL3334446c!ff66666666	7s   A9A< <
B?.B:4B?:B?alcohol_typeamountc                    	 t          j        |           }|p%t          j                                        d          }t          |||          }t                      }|                    ||           d|  d| d| S # t          $ r9}t          
                    d|            dt          |           cY d}~S d}~ww xY w)	zLog alcohol consumption.r   )r   r&   r'   u   ✅ Logged alcohol for r    zFailed to log alcohol: u   ❌ Error logging alcohol: N)r   r   r   r   r   r   r   add_alcohol_entryr   r   r   r   )	r   r&   r'   r   r   r    r!   r"   r#   s	            r$   log_alcoholzHealthWriter.log_alcohol(   s    	:)+66H?x|~~66w??H )  E '((G%%h666S[SSFSS\SSS 	: 	: 	:LL61667779Q99999999	:s   A<A? ?
C	.B=7C=Cnamedosagec                    	 t          j        |           }|p%t          j                                        d          }t          |||          }t                      }|                    ||           d|  d| d| dS # t          $ r9}t          
                    d|            dt          |           cY d	}~S d	}~ww xY w)
zLog supplement.r   )r   supplement_namer-   u   ✅ Logged supplement for r   z ()zFailed to log supplement: u   ❌ Error logging supplement: N)r   r   r   r   r   r	   r   add_supplement_entryr   r   r   r   )	r   r,   r-   r   r   r    r!   r"   r#   s	            r$   log_supplementzHealthWriter.log_supplementA   s    	=)+66H?x|~~66w??H# $  E '((G((5999PPPtPPvPPPP 	= 	= 	=LL9a99:::<CFF<<<<<<<<	=s   A=B   
C
.B>8C>Cfeeling_typeseverityc                    	 t          j        |           }|p%t          j                                        d          }t          ||||          }t                      }|                    ||           d|  d| d| dS # t          $ r9}	t          
                    d|	            dt          |	           cY d	}	~	S d	}	~	ww xY w)
zLog body feeling/symptom.r   )r   r3   r4   r   u   ✅ Logged feeling for r   z (Level r0   zFailed to log feeling: u   ❌ Error logging feeling: N)r   r   r   r   r   r
   r   add_feeling_entryr   r   r   r   )
r   r3   r4   r   r   r   r    r!   r"   r#   s
             r$   log_feelingzHealthWriter.log_feelingZ   s    	:)+66H?x|~~66w??H$)!'	  E '((G%%h666][]]L]]RZ]]]] 	: 	: 	:LL61667779Q99999999	:s   A>B 
C.B?9C?Cmodenotesc                    	 t          j        |           }t                      }|                    ||           d|  d| S # t          $ r9}t
                              d|            dt          |           cY d}~S d}~ww xY w)zLog fasting mode.u   ✅ Set fasting mode for r   zFailed to set fasting mode: u    ❌ Error setting fasting mode: N)r   r   r   set_fasting_moder   r   r   r   )r   r8   r9   r   r"   r#   s         r$   log_fastingzHealthWriter.log_fastingu   s    
	?)+66H&((G $$Xt444D{DDdDDD 	? 	? 	?LL;;;<<<>c!ff>>>>>>>>	?s   ?A 
B.B :B B)Nr   )N)__name__
__module____qualname__staticmethodr   r   r%   r+   r2   intr7   r<        r$   r   r      s        # 	7 777 sm7 	7
 
7 7 7 \70 
 #	: ::: : sm	:
 
: : : \:0 
 #	= === = sm	=
 
= = = \=0  #: ::: : 	:
 sm: 
: : : \:4   $? ??? }? 
	? ? ? \? ? ?rC   r   N)r   r   typingr   "health.services.manual_log_storager   health.models.manual_logr   r   r	   r
   health.utils.logging_configr   r=   r   r   rB   rC   r$   <module>rH      s    # # # # # # # #       ? ? ? ? ? ?            5 4 4 4 4 4	h		x? x? x? x? x? x? x? x? x? x?rC   