
    5,h                     ,    S r SSKrSSKr " S S5      rg)uC   
Configuraciones del sistema y gestión de preferencias de usuario
    Nc                   `    \ rS rSrSrSS jrS rS rS rS r	S	 r
SS
 jrS rSS jrS rSrg)Config   u>   Clase para manejar la configuración y preferencias de usuarioNc                    U=(       d_    [         R                  R                  [         R                  R                  [         R                  R	                  [
        5      5      SS5      U l        [         R                  R                  U R                  5      (       a:  [        U R                  SSS9 n[        R                  " U5      U l        SSS5        gSSS	S
S.SSSS
S
S.0 0 S.U l        U R                  5         g! , (       d  f       g= f)uh   
Inicializa la configuración

Args:
    config_file (str, optional): Ruta al archivo de configuración
z..zconfig.jsonrutf-8encodingNzAsistente Inteligente Aurisz1.0.0esT)nameversionlanguagedebugmediumF)default_font_sizehigh_contrast_modesimplified_textaudio_feedbackextended_descriptions)appaccessibilityapi_keysusers)ospathjoindirnameabspath__file__config_fileexistsopenjsonloadconfig_save_config)selfr    fs      7D:\NESTOR\Documents\Tesis\auris\backend\utils\config.py__init__Config.__init__
   s     ' 
"'',,GGOOBGGOOH56+
 77>>$**++d&&g>!"iil ?> :& $!	 *2*/',&*-1"#DK. 7 ?>s   1C>>
Dc                    [         R                  " [         R                  R                  U R                  5      SS9  [        U R                  SSS9 n[        R                  " U R                  USS9  SSS5        g! , (       d  f       g= f)	u&   Guarda la configuración en el archivoT)exist_okwr   r	      )indentN)	r   makedirsr   r   r    r"   r#   dumpr%   )r'   r(   s     r)   r&   Config._save_config6   sY     	BGGOOD$4$45E$""C':aIIdkk1Q/ ;::s   !A<<
B
c                      U R                   S   $ )uj   
Obtiene la configuración general de la aplicación

Returns:
    dict: Configuración de la aplicación
r   r%   r'   s    r)   get_app_configConfig.get_app_config>   s     {{5!!    c                      U R                   S   $ )uo   
Obtiene la configuración de accesibilidad predeterminada

Returns:
    dict: Configuración de accesibilidad
r   r5   r6   s    r)   get_accessibility_configConfig.get_accessibility_configG   s     {{?++r9   c                 >    U R                   S   R                  U5      $ )z
Obtiene una clave de API para un servicio

Args:
    service (str): Nombre del servicio
    
Returns:
    str: Clave de API o None si no existe
r   )r%   get)r'   services     r)   get_api_keyConfig.get_api_keyP   s     {{:&**733r9   c                 F    X R                   S   U'   U R                  5         g)zw
Establece una clave de API para un servicio

Args:
    service (str): Nombre del servicio
    key (str): Clave de API
r   Nr%   r&   )r'   r?   keys      r)   set_api_keyConfig.set_api_key\   s!     ,/J(r9   c                 v    XR                   S   ;  a  0 U R                  5       ESU0E$ U R                   S   U   $ )z
Obtiene las preferencias de un usuario

Args:
    user_id (str): Identificador del usuario
    
Returns:
    dict: Preferencias del usuario
r   user_id)r%   r;   )r'   rH   s     r)   get_user_preferencesConfig.get_user_preferencesg   sN     ++g..//17 
 {{7#G,,r9   c                     SU R                   ;  a  0 U R                   S'   XR                   S   ;   a"  U R                   S   U   R                  U5        OX R                   S   U'   U R                  5         g)z
Guarda las preferencias de un usuario

Args:
    user_id (str): Identificador del usuario
    preferences (dict): Preferencias a guardar
r   N)r%   updater&   )r'   rH   preferencess      r)   save_user_preferencesConfig.save_user_preferencesz   sj     $++%#%DKK  kk'**KK )00=,7KK ) 	r9   c                 F    XR                   S   S'   U R                  5         g)uc   
Activa o desactiva el modo de depuración

Args:
    debug (bool): Estado del modo de depuración
r   r   NrC   )r'   r   s     r)   set_debug_modeConfig.set_debug_mode   s!     ',E7#r9   c                 F    XR                   S   S'   U R                  5         g)uc   
Establece el idioma predeterminado de la aplicación

Args:
    language (str): Código de idioma
r   r   NrC   )r'   r   s     r)   set_default_languageConfig.set_default_language   s!     *2E:&r9   )r%   r    )N)	anonymous)T)__name__
__module____qualname____firstlineno____doc__r*   r&   r7   r;   r@   rE   rI   rN   rQ   rT   __static_attributes__ r9   r)   r   r      s8    H* X0",
4	-&(r9   r   )r[   r   r#   r   r]   r9   r)   <module>r^      s    
 Y Yr9   