
    Wi                        U d Z ddlZddlmZ ddlmZmZ ddlmZ ddl	m
Z
  e
              ee          j        j        Z ej        d          Zer ee          Znedz  d	z  Zed
z  Zedz  Z ej                    dz  dz  Ze                    dd           e                    dd           e                    dd            ej        d          Z ej        d          ZdIdZddddddddddddddd dd!d"d#dd$d%d&dd'd(d)dd*d+d,dd-d.d/dd0d1d2dd3d4d5dd6d7d8dd9d:d;dd<d=d>d?dd@dAdBddCZeeeeef         f         edD<   dEZdFZdGZdHZdS )Jz|
Configuration management for Garmin Health Sync system.

Loads environment variables and defines data type configurations.
    N)Path)DictAny)load_dotenv)load_env_with_extrasDATA_DIRdatahealthz	health.dblogsz.garmintokensT)parentsexist_okGARMIN_EMAILGARMIN_PASSWORDreturnc                  @    t           rt          st          d          dS )zjValidate that Garmin credentials are set.

    Raises:
        ValueError: If credentials are missing
    zzMissing Garmin credentials. Please set GARMIN_EMAIL and GARMIN_PASSWORD in your .env file. See .env.example for reference.N)r   r   
ValueError     &/root/projects/butler/health/config.pyvalidate_credentialsr   (   s5      
 
A
 
 	

 
r   get_steps_datazdaily_metrics/stepsz(Daily step count, distance, and calories)
api_methodstorage_pathdescriptionget_heart_rateszdaily_metrics/heart_ratez+Heart rate data including min, max, restingget_sleep_datazdaily_metrics/sleepz*Sleep stages, duration, and quality scoresget_stress_datazdaily_metrics/stressz Stress levels throughout the dayget_body_batteryzdaily_metrics/body_batteryzBody Battery charge and drainget_spo2_datazdaily_metrics/spo2zBlood oxygen saturation levelsget_respiration_datazdaily_metrics/respirationzBreathing rate dataget_hydration_datazdaily_metrics/hydrationzDaily water intake tracking
get_floorszdaily_metrics/floorszFloors climbed per dayget_intensity_minuteszdaily_metrics/intensity_minutesz0Active intensity minutes (moderate and vigorous)get_hrv_datazdaily_metrics/hrvzHeart rate variabilityget_rhr_dayzdaily_metrics/rhrzResting heart rateget_activities_by_date
activitiesz Exercise activities and workouts)r   r   r   batch_by_date_rangeget_weigh_inszbody_metrics/weightzBody weight measurementsget_lifestyle_logging_datazdaily_metrics/lifestyle_loggingzFLifestyle behaviors: alcohol, caffeine, meals, fasting, light exercise)steps
heart_ratesleepstressbody_batteryspo2respiration	hydrationfloorsintensity_minuteshrvrhrr(   weightlifestyle_loggingDATA_TYPE_CONFIG         z
2024-01-01)r   N) __doc__ospathlibr   typingr   r   dotenvr   health.utils.env_loaderr   __file__parentPROJECT_ROOTgetenv_data_dir_envr   DB_PATHLOGS_DIRhomeTOKEN_STOREmkdirr   r   r   r:   str__annotations__DEFAULT_BATCH_SIZE_DAYSMAX_RETRIESRETRY_DELAY_SECONDSHISTORICAL_START_DATEr   r   r   <module>rT      s     
			                     8 8 8 8 8 8      tH~~$+ 	*%% 0tM""HHf$x/H
[
 & dikkI%0 	td + + + td + + +   $  . . . ry((")-..

 

 

 

  '-A  (2D  '-C  (.9  )46  &,7  -3,  +14  #./  .9I  %+/  $++  /$9#	  &-1  39_ QM/ M/ $sDcN*+ M M M`    %   r   