
    mi                         d 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 G d de          Z G d de          ZdS )z2
Custom exceptions for Garmin Health Sync system.
c                       e Zd ZdZdS )HealthSyncErrorz*Base exception for all health sync errors.N__name__
__module____qualname____doc__     0/root/projects/butler/health/utils/exceptions.pyr   r      s        44Dr
   r   c                       e Zd ZdZdS )GarminAuthErrorz(Raised when Garmin authentication fails.Nr   r	   r
   r   r   r      s        22Dr
   r   c                   8     e Zd ZdZddededz  ddf fdZ xZS )GarminAPIErrorz(Raised when Garmin API returns an error.Nmessagestatus_codereturnc                 X    t                                          |           || _        dS )zInitialize GarminAPIError.

        Args:
            message: Error message
            status_code: HTTP status code if available
        N)super__init__r   )selfr   r   	__class__s      r   r   zGarminAPIError.__init__   s+     	!!!&r
   )N)r   r   r   r   strintr   __classcell__r   s   @r   r   r      sa        22' ' '#* ' ' ' ' ' ' ' ' ' ' 'r
   r   c                       e Zd ZdZdS )DataValidationErrorz"Raised when data validation fails.Nr   r	   r
   r   r   r       s        ,,Dr
   r   c                       e Zd ZdZdS )StorageErrorz5Raised when file or database storage operations fail.Nr   r	   r
   r   r   r   &   s        ??Dr
   r   c                       e Zd ZdZdS )	SyncErrorz'Raised when data synchronization fails.Nr   r	   r
   r   r!   r!   ,   s        11Dr
   r!   c                   .     e Zd ZdZddeddf fdZ xZS )RateLimitErrorz'Raised when API rate limit is exceeded.API rate limit exceededr   r   Nc                 N    t                                          |d           dS )zUInitialize RateLimitError.

        Args:
            message: Error message
        i  )r   N)r   r   )r   r   r   s     r   r   zRateLimitError.__init__5   s(     	c22222r
   )r$   )r   r   r   r   r   r   r   r   s   @r   r#   r#   2   sV        113 3 3D 3 3 3 3 3 3 3 3 3 3r
   r#   N)	r   	Exceptionr   r   r   r   r   r!   r#   r	   r
   r   <module>r'      s?   
	 	 	 	 	i 	 	 		 	 	 	 	o 	 	 	' ' ' ' '_ ' ' '	 	 	 	 	/ 	 	 		 	 	 	 	? 	 	 		 	 	 	 	 	 	 		3 	3 	3 	3 	3^ 	3 	3 	3 	3 	3r
   