o
    yv•j  ã                   @   sJ   d dl Z d dlZd dlmZmZ d dlmZmZ G dd„ deƒZeƒ Z	dS )é    N)Úfield_validatorÚmodel_validator)ÚBaseSettingsÚSettingsConfigDictc                   @   s  e Zd ZU dZeed< dZeed< g d¢Zee eB ed< dZ	eed< d	Z
eed
< dZeed< dZeed< dZeed< dZeed< dZeed< dZeed< dZeed< dZeed< dZeed< eddd�edee eB dee fdd„ƒƒZedd�d'd d!„ƒZed"d#d$d%�Zd&S )(ÚSettingszmongodb://localhost:27017Úmongodb_uriÚ
chatbot_dbÚdatabase_name)zhttp://localhost:3000zhttp://localhost:8000zhttp://127.0.0.1:5500zhttp://127.0.0.1:8000Úallowed_originsÚ Ú
jwt_secretÚHS256Újwt_algorithmi   Újwt_expiration_minutesÚ	smtp_hostiK  Ú	smtp_portÚ	smtp_userÚsmtp_passwordznoreply@outrightcrm.inÚsmtp_from_emailTÚsmtp_use_tlsFÚsmtp_use_sslzalok.chaudhary2001@gmail.comÚadmin_notification_emailÚafter)ÚmodeÚvÚreturnc                 C   sz   t |tƒr;| ¡ }| d¡r1| d¡r1zdd l}| |¡}t |tƒr%|W S W n
 |jy0   Y nw dd„ | 	d¡D ƒS |S )Nú[ú]r   c                 S   s   g | ]
}|  ¡ r|  ¡ ‘qS © )Ústrip)Ú.0Úoriginr   r   ú+/web/html/dev/chatbot/backend/app/config.pyÚ
<listcomp>+   s    z2Settings.parse_allowed_origins.<locals>.<listcomp>ú,)
Ú
isinstanceÚstrr   Ú
startswithÚendswithÚjsonÚloadsÚlistÚJSONDecodeErrorÚsplit)Úclsr   r)   Úparsedr   r   r"   Úparse_allowed_origins   s   


ÿÿzSettings.parse_allowed_originsc                 C   s6   | j sdtjv stj d¡dkrd| _ | S tdƒ‚| S )NÚPYTEST_CURRENT_TESTÚENVÚtestÚ(test_deterministic_jwt_secret_for_pytestzlJWT_SECRET environment variable is missing or empty. Please set JWT_SECRET in .env or environment variables.)r   ÚosÚenvironÚgetÚ
ValueError)Úselfr   r   r"   Úvalidate_jwt_secret.   s   ÿzSettings.validate_jwt_secretz.envzutf-8Úignore)Úenv_fileÚenv_file_encodingÚextraN)r   r   )Ú__name__Ú
__module__Ú__qualname__r   r&   Ú__annotations__r	   r
   r+   r   r   r   Úintr   r   r   r   r   r   Úboolr   r   r   Úclassmethodr0   r   r:   r   Úmodel_configr   r   r   r"   r      s.   
 
"
ÿr   )
r5   r)   Úpydanticr   r   Úpydantic_settingsr   r   r   Úsettingsr   r   r   r"   Ú<module>   s    
5