
    8(oi                        d Z ddlmZ ddlmZmZ ddlmZmZ ddlm	Z	m
Z
mZ  G d de	          Z G d d	e	          Z G d
 de	          Z G d de	          Z G d de	          ZdS )zh
Manual health log models for user-entered data.

Tracks diet, alcohol, supplements, and body feelings.
    )annotations)datedatetime)OptionalList)	BaseModelField
ConfigDictc                      e Zd ZU dZ edd          Zded<    edd          Zded<    ed	d
          Zded<    ed	d          Z	ded<    ed	d          Z
ded<    ed	d          Zded<   d	S )	DietEntryz&Single diet entry for a meal or snack..zTime of meal (HH:MM format)descriptionstrtimezWhat was eatenr   Nzbreakfast/lunch/dinner/snackOptional[str]	meal_typezEstimated caloriesOptional[int]estimated_calorieszLow/Medium/High carb contentcarbsAdditional notesnotes)__name__
__module____qualname____doc__r	   r   __annotations__r   r   r   r   r        1/root/projects/butler/health/models/manual_log.pyr   r      s         00c'DEEEDEEEEuS.>???K????$uT7UVVVIVVVV(-d@T(U(U(UUUUU 53QRRRERRRR 53EFFFEFFFFFFr   r   c                      e Zd ZU dZ edd          Zded<    edd          Zded<    edd	          Zded
<    edd          Z	ded<    edd          Z
ded<    edd          Zded<   dS )AlcoholEntryzAlcohol consumption entry..z"Time of consumption (HH:MM format)r   r   r   z,Type of alcohol (wine/spirits/beer/cocktail)
drink_typez.Amount consumed (e.g., '2 glasses', '3 shots')amountNzWhat food was eatenr   food_with_alcoholFz"Whether NAC was taken pre-drinkingbool	nac_takenr   r   )r   r   r   r   r	   r   r   r"   r#   r$   r&   r   r   r   r   r!   r!      s         $$c'KLLLDLLLLeC-[\\\J\\\\%)YZZZFZZZZ',uT?T'U'U'UUUUUeE/STTTITTTT 53EFFFEFFFFFFr   r!   c                      e Zd ZU dZ edd          Zded<    edd          Zded<    ed	d
          Zded<    ed	d          Z	ded<    ed	d          Z
ded<   d	S )SupplementEntryzSupplement intake entry..zTime taken (HH:MM format)r   r   r   zName of supplementsupplement_nameNzDosage takenr   dosagez$morning/afternoon/evening/before_bedtimingr   r   )r   r   r   r   r	   r   r   r)   r*   r+   r   r   r   r   r(   r(   $   s         ""c'BCCCDCCCC 52FGGGOGGGG!E$NCCCFCCCC!E$4Z[[[F[[[[ 53EFFFEFFFFFFr   r(   c                     e Zd ZU dZ edd          Zded<    edd          Zded<    ed	d
dd          Zded<    ed	d          Z	ded<    edd          Z
ded<    ed	d          Zded<    ed	d          Zded<   d	S )BodyFeelingEntryzBody feeling and symptom entry..zTime recorded (HH:MM format)r   r   r   z;Type of feeling (chest_tightness/fatigue/pain/energy/other)feeling_typeN   
   zSeverity 1-10)geler   r   severityzBody location if applicabler   locationzDetailed descriptionr   zPossible triggerstriggersr   r   )r   r   r   r   r	   r   r   r.   r3   r4   r   r5   r   r   r   r   r-   r-   .   s'        ))c'EFFFDFFFFQ  L     $e#	  H     $eD6STTTHTTTTuS.DEEEKEEEE#eD6IJJJHJJJJ 53EFFFEFFFFFFr   r-   c                     e Zd ZU dZ edd          Zded<    edd          Zd	ed
<    ee          Z	ded<    ee          Z
ded<    ee          Zded<    ee          Zded<    edd          Zd	ed<    eej                  Zded<    eej                  Zded<    eed ed i          ZdS )DailyManualLogz%Complete manual log for a single day..zDate of the logr   r   log_dateNzPSMF/OMAD/Water Fast/Normalr   fasting_mode)default_factoryzList[DietEntry]diet_entrieszList[AlcoholEntry]alcohol_entrieszList[SupplementEntry]supplement_entrieszList[BodyFeelingEntry]feeling_entrieszOverall summary of the daydaily_summaryr   
created_at
updated_atc                *    |                                  S N	isoformatvs    r   <lambda>zDailyManualLog.<lambda>X   s    AKKMM r   c                *    |                                  S rC   rD   rF   s    r   rH   zDailyManualLog.<lambda>Y   s     r   )json_encoders)r   r   r   r   r	   r8   r   r9   listr;   r<   r=   r>   r?   r   nowr@   rA   r
   r   model_configr   r   r   r7   r7   B   s        //U3,=>>>H>>>>"'%1# # #L     %*E$$?$?$?L????*/%*E*E*EOEEEE05d0K0K0KKKKK.3eD.I.I.IOIIII#(50$ $ $M     !5>>>J>>>> 5>>>J>>>>:))--
  LLLr   r7   N)r   
__future__r   r   r   typingr   r   pydanticr   r	   r
   r   r!   r(   r-   r7   r   r   r   <module>rQ      sm    # " " " " " # # # # # # # # ! ! ! ! ! ! ! ! 1 1 1 1 1 1 1 1 1 1G G G G G	 G G GG G G G G9 G G GG G G G Gi G G GG G G G Gy G G G(    Y     r   