o
    5)i                     @   s   d dl Z d dlmZ d dlmZ ee je jeZeej	Z
ee
d Zee eeZe je
dZe jedZ	 G dd dZG d	d
 d
eZG dd deZG dd deZeeeedZdS )    N)Path)load_dotenvz.envstorageappc                   @   s  e Zd ZdZeddZedddkZedddkZedddkZ	ej
d	d
 ZejedZeej
ddZeej
ddZej
ddZej
ddZdeddeeddededededdeddd iZed d! Zed d" Zed d# Zed d$ Zed d% Zed d& Zed'd(Zg d)Z g d*Z!d+Z"d,Z#ed-red-d.d(ng Z$ed/d0Z%ejed1d2d3d4Z&ed5d6Z'd7Z(d8Z)d9Z*d:Z+d7Z,d;Z-d<Z.ed=d>Z/d?Z0eje1d@dAZ2eje1d@dBZ3eje1dCdDZ4eje1d@dEZ5eje1dCdEZ6ejed1dFZ7edGZ8edHZ9edIZ:edJZ;e<dQdKe=fdLdMZ>e<dNdO Z?dPS )RConfigzBase configuration.APP_KEYyour_default_secret_keyDEBUGFalseTrueTESTINGJSONIFY_PRETTYPRINT_REGULAR	LOG_LEVELINFOlogsLOG_MAX_BYTESi   LOG_DAILY_DAYS   
LOG_FORMATz1[%(asctime)s] %(name)s.%(levelname)s: %(message)sLOG_DATE_FORMATz%Y-%m-%d %H:%M:%SdefaultDB_HOST	localhostDB_PORT3306DB_DATABASEDB_USERNAMEDB_PASSWORDDB_COLLATIONutf8mb4_unicode_ciDB_SQL_MODENO_ENGINE_SUBSTITUTION)hostportdatabaseusernamepassword	collationsql_moder"   r#   r$   r%   r&   r'   APP_URL,)GETPOSTPUTDELETEOPTIONSPATCH)zContent-TypeAuthorizationzX-Requested-WithAcceptOriginzX-CSRF-Tokenz	X-API-KeyiX  TAPI_KEYS PYTHON_API_CACHE_STORE
filesystem	frameworkcachedatapyapiPYTHON_API_CACHE_PREFIXpy_qpgs_apii,  i  i  <   i  iQ 
PANDOC_URL/usr/bin/pandocnodepublicpdfdocxprivate	templatestempprophet_modelsAZURE_OPENAI_API_KEYAZURE_OPENAI_API_ENDPOINTAZURE_OPENAI_API_VERSIONAZURE_OPENAI_DEPLOYMENT_NAMEdatabase_namec                 C   s   || j vrtd| dt| j   | j | }i d|d d|d d|d d|d d|d d	d
d|d d|d dddd| ddddddddddddS )z9Get MySQL connection configuration for specified databasez
Database 'z'' not configured. Available databases: r"   r#   r$   userr%   r&   charsetutf8mb4r'   r(   
autocommitT	pool_namemysql_pool_	pool_size   pool_reset_sessionconnection_timeout   bufferedread_timeout
   connect_timeout)MYSQL_DATABASES
ValueErrorlistkeys)clsrM   	db_config rc   1/var/www/html/oms-prod-mcp/app/config/settings.pyget_mysql_configq   sL   

	

zConfig.get_mysql_configc                 C   s   t | j S )z-Get list of available database configurations)r_   r]   r`   )ra   rc   rc   rd   get_available_databases   s   zConfig.get_available_databasesN)r   )@__name__
__module____qualname____doc__osgetenv
SECRET_KEYr	   r   r   environgetupperr   pathjoinstorage_dirLOG_DIRintr   LOG_BACKUP_COUNTr   r   r]   
MYSQL_HOST
MYSQL_PORTMYSQL_DATABASEMYSQL_USERNAMEMYSQL_PASSWORDMYSQL_COLLATIONsplitCORS_ORIGINSCORS_METHODSCORS_ALLOW_HEADERSCORS_MAX_AGECORS_SUPPORTS_CREDENTIALSr4   
CACHE_TYPE	CACHE_DIRCACHE_KEY_PREFIXCACHE_DEFAULT_TIMEOUTCACHE_THRESHOLDCACHE_FILE_MODECACHE_TTL_SHORTCACHE_TTL_MEDIUMCACHE_TTL_LONGCACHE_TTL_VERY_LONGPANDOC_LOCATIONNODE_JS_PATHstorage_app_dirPDF_STORAGE_DIRDOCX_STORAGE_DIRTEMPLATE_DIRTEMPORARY_DIRPRIVATE_TEMPORARY_DIRPROPHET_MODEL_DIRrI   AZURE_OPENAI_ENDPOINTrK   rL   classmethodstrre   rf   rc   rc   rc   rd   r      s    


	 



r   c                   @   s   e Zd ZdZdZdZdS )DevelopmentConfigzDevelopment configuration.Tr	   N)rg   rh   ri   rj   r	   r   rc   rc   rc   rd   r      s    r   c                   @   (   e Zd ZdZdZdZeddZdZ	dS )TestingConfigzTesting configuration.TWARNINGr?   r@   /opt/plesk/node/18/bin/nodeN)
rg   rh   ri   rj   r   r   rk   rl   r   r   rc   rc   rc   rd   r          r   c                   @   r   )ProductionConfigzProduction configuration.Fr   r?   r@   r   N)
rg   rh   ri   rj   r	   r   rk   rl   r   r   rc   rc   rc   rd   r      r   r   )development
productiontestingr   )rk   pathlibr   dotenvr   rq   dirname__file__r   parentproject_root_direnv_pathapi_dirrr   rs   r   r   r   r   r   configrc   rc   rc   rd   <module>   s(    

