o
    r²:j�  ã                   @   s^   d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	 G dd„ deƒZ
ede
fdd	„ƒZd
S )é    )Ú	lru_cache)ÚLiteral)ÚFieldÚmodel_validator)ÚBaseSettingsÚSettingsConfigDictc                   @   s  e Zd ZU eddd�Zeed< eddd�Zeed< edd	d�Zeed
< eddd�Z	e
d ed< eddd�ZedB ed< eddd�ZedB ed< eddd�Ze
d ed< eddd�ZedB ed< eddd�Zeed< eddd�Zeed< ed d!d�Ze
d" ed#< ed$d%d�Zeed&< edd'd�ZedB ed(< ed)d*d�Zeed+< edd,d�ZedB ed-< edd.d�ZedB ed/< edd0d�ZedB ed1< ed2d3d�Zeed4< edd5d�Zeed6< edd7d�ZedB ed8< edd9d�Zeed:< edd;d�Ze
d< ed=< ed>d?d@dA�Z e!dBdC�dGdEdF„ƒZ"dS )HÚSettingszMacroBase Freshchat APIÚAPP_NAME)ÚdefaultÚaliasÚapp_nameÚdevelopmentÚAPP_ENVÚapp_envú	change-meÚFRESHCHAT_API_TOKENÚfreshchat_api_tokenÚfreshchat_simpleÚDEFAULT_RESPONSE_MODE)Úinternalr   ÚfallbackÚdefault_response_modeNÚFRESHWORKS_API_BASE_URLÚfreshworks_api_base_urlÚFRESHWORKS_API_TOKENÚfreshworks_api_tokenÚbotÚFRESHWORKS_DEFAULT_ACTOR_TYPE)Úagentr   Úfreshworks_default_actor_typeÚFRESHWORKS_DEFAULT_ACTOR_IDÚfreshworks_default_actor_idFÚFRESHWORKS_ASSUME_IDENTITYÚfreshworks_assume_identityzdata/freshchat_events.dbÚEVENT_STORE_PATHÚevent_store_pathÚsqliteÚCUSTOMER_STATE_BACKEND)r&   ÚmysqlÚcustomer_state_backendzdata/customer_state.dbÚCUSTOMER_STATE_STORE_PATHÚcustomer_state_store_pathÚCUSTOMER_STATE_MYSQL_HOSTÚcustomer_state_mysql_hostiê  ÚCUSTOMER_STATE_MYSQL_PORTÚcustomer_state_mysql_portÚCUSTOMER_STATE_MYSQL_DATABASEÚcustomer_state_mysql_databaseÚCUSTOMER_STATE_MYSQL_USERÚcustomer_state_mysql_userÚCUSTOMER_STATE_MYSQL_PASSWORDÚcustomer_state_mysql_passwordÚcustomer_statesÚCUSTOMER_STATE_MYSQL_TABLEÚcustomer_state_mysql_tableÚ"FRESHCHAT_WEBHOOK_VERIFY_SIGNATUREÚ"freshchat_webhook_verify_signatureÚFRESHCHAT_API_BASE_URLÚfreshchat_api_base_urlÚFRESHCHAT_AUTO_REPLY_ENABLEDÚfreshchat_auto_reply_enabledÚFRESHCHAT_SEND_AS_ACTOR_TYPE)r   r   ÚuserÚfreshchat_send_as_actor_typez.envzutf-8Úignore)Úenv_fileÚenv_file_encodingÚextraÚafter)ÚmodeÚreturnc                 C   sœ   | j s| S | jstdƒ‚| jr| jdkrtdƒ‚| jdkrLg }| js'| d¡ | js/| d¡ | js7| d¡ | j	d u rA| d¡ |rLtd	d
 
|¡ ƒ‚| S )NzIFRESHCHAT_API_BASE_URL es requerido si FRESHCHAT_AUTO_REPLY_ENABLED=true.r   zFFRESHCHAT_API_TOKEN es requerido si FRESHCHAT_AUTO_REPLY_ENABLED=true.r(   r,   r0   r2   r4   z4Faltan variables para CUSTOMER_STATE_BACKEND=mysql: z, )r>   r<   Ú
ValueErrorr   r)   r-   Úappendr1   r3   r5   Újoin)ÚselfÚmissing© rN   ú8/var/www/html/macrobase-freshchat-api/app/core/config.pyÚ$validate_freshchat_auto_reply_config4   s*   





ÿz-Settings.validate_freshchat_auto_reply_config)rH   r   )#Ú__name__Ú
__module__Ú__qualname__r   r   ÚstrÚ__annotations__r   r   r   r   r   r   r   r!   r#   Úboolr%   r)   r+   r-   r/   Úintr1   r3   r5   r8   r:   r<   r>   rA   r   Úmodel_configr   rP   rN   rN   rN   rO   r      sX   
 þþþþþþr   rH   c                   C   s   t ƒ S )N)r   rN   rN   rN   rO   Úget_settingsQ   s   rY   N)Ú	functoolsr   Útypingr   Úpydanticr   r   Úpydantic_settingsr   r   r   rY   rN   rN   rN   rO   Ú<module>   s    I