
    qpi                     N    d dl mZ d dlmZ  ee          Z G d d          ZdS )    )HealthAnalyst)setup_loggerc                   b    e Zd Zeddededefd            Zeddeded	ededef
d
            ZdS )AnalyticsTool   analysis_typelookback_daysreturnc                    	 t                      }| dk    r|                    |          }d| d| S | dk    r|                    |          }d| d| S | dk    r|                    |          }d| d| S d	|  d
S # t          $ r9}t
                              d|            dt          |           cY d}~S d}~ww xY w)a  
        Get advanced health insights and correlations.
        
        Args:
            analysis_type: Type of analysis to run. Options:
                - 'recovery_correlations': Impact of Alcohol/Activity on Sleep/RHR.
                - 'fitness_trends': Trends in RHR vs Activity over time.
                - 'lifestyle_impact': Efficacy of Fasting and Supplements.
            lookback_days: Number of days to analyze (default 30, max 365).
        recovery_correlationsdayszRecovery Correlations (Last z days):
fitness_trendszFitness Trends (Last lifestyle_impactz Lifestyle Impact Analysis (Last zUnknown analysis type: zE. Supported: recovery_correlations, fitness_trends, lifestyle_impact.zError generating insights: zError analyzing data: N)r   analyze_recovery_correlationsanalyze_fitness_trendsanalyze_lifestyle_impact	Exceptionloggererrorstr)r   r	   analystresultses        2/root/projects/butler/slack_bot/tools/analytics.pyget_health_insightsz!AnalyticsTool.get_health_insights   s6   	5#ooG 777!??]?SSWmWWgWWW"222!88m8LLP}PPwPPP"444!:::NN[-[[RY[[[ F  F  F  F  F 	5 	5 	5LL:q::;;;4CFF44444444	5s.   1B #B #B <B 
C.C :C Ccorrelationdriver_metrictarget_metricmethodc                 `   	 t                      }|dk    r3d}|dv r| dv rd}|                    | |||          }d|  d| d	| d
| S |dk    r#|                    | ||          }d|  d| d| S d| S # t          $ r,}t                              d|            d| cY d}~S d}~ww xY w)a  
        Analyze specific relationships between two metrics.
        
        Args:
            driver_metric: The cause (e.g., 'alcohol_units', 'steps', 'fasting_mode', 'has_magnesium').
            target_metric: The effect (e.g., 'sleep', 'rhr', 'hrv').
            method: 'correlation' (for continuous values) or 'group_compare' (for yes/no events).
            lookback_days: Days to analyze.
        r   r   )sleeprhrhrv)alcohol_unitsstress   )lagr   zCorrelation Analysis (z -> z, lag=zd):
group_comparer   zGroup Comparison (z YES vs NO -> z):
zUnknown method: zError in analyze_driver: zError: N)r   analyze_lagged_correlationcompare_groupsr   r   r   )r   r   r    r	   r   r(   resultr   s           r   analyze_driverzAnalyticsTool.analyze_driver)   s.   	!#ooG&&  $;;;Ql@l@lC ;;M=^ahu;vvjjj=jjX[jjbhjjj?** //}S`/aadMdddd\bddd 3&222 	! 	! 	!LL8Q88999 Q==      	!s*   AA7 	(A7 2A7 7
B-!B("B-(B-N)r   )r   r   )__name__
__module____qualname__staticmethodr   intr   r-        r   r   r      s        5 53 5s 5C 5 5 5 \5B  !  !c  !#  !s  !kn  !x{  !  !  ! \ !  !  !r4   r   N)health.analytics.enginer   health.utils.logging_configr   r.   r   r   r3   r4   r   <module>r7      st    1 1 1 1 1 1 4 4 4 4 4 4	h		D! D! D! D! D! D! D! D! D! D!r4   