
    i                         d dl Z d dlmZ d dlmZmZ  e             d Zd Zddede	d	ee         fd
Z
 G d d          Z e            ZdS )    N)load_dotenv)ListOptionalc                      t          j        d          } | sdS d| v r$|                     d          d         }|dv rd| S dS )N
VM_PROJECT -)1547_osgetenvsplit
vm_projectproject_suffixs     =/app/auth/subscriptions/stripe_server/../../../core/config.py_get_env_suffixr      sb    <((J r j#))#..r2111'~'''2    c                      t          j        d          } | sdS d| v r#|                     d          d         }|dk    rdS dS )Nr   _TESTr	   r
   r   _LIVEr   r   s     r   _get_stripe_envr      sX    <((J w j#))#..r2S  77r   F	base_namestripereturnc                     |r&t                      }t          j        |  |           S t                      }|r0t          j        |  |           }||nt          j        |           S t          j        |           S )N)r   r   r   r   )r   r   suffixvalues       r   _get_envr$       s     ( ""yI/v//000 !"" 	(I4F4455E!-5529Y3G3GG 9Y'''r   c                   0   e Zd ZdZ ed          Z ed          Z ed          Z ed          Z ed          Z	 ed          Z
 ed          Z ed	          Z ed
          Z ed          Z ed          Z ed          Z ed          Z ej        dd          Z ej        dd                                          dk    Z ej        d          r$ ej        dd                              d          ng Z ed          Z ed          Zere                    dd          ndZ ed          Z ed          Z ed          Z ed          Z  ed           Z! ed!          Z" ed"          Z# ed#d$%          Z$ ed&d$%          Z% ed'd$%          Z& ed(          Z' ej        d)d*          Z( ed+d$%          Z) ed,d$%          r  ed,d$%                              d          ng Z* ed-d$%          Z+ ed.d$%          r  ed.d$%                              d          ng Z,e-d/e.fd0            Z/e-d/e.fd1            Z0e-d/e.fd2            Z1e-d/e.fd3            Z2e-d/e.fd4            Z3e-d/e4e.         fd5            Z5dS )6Configz)Configuration manager for the applicationOPENAI_API_KEYPINECONE_API_KEYTOGETHERAI_API_KEYFIREBASE_API_KEYNATIONAL_DATASET_KEYGCP_LLM_KEYFIRESTORE_KEYZILLIZ_ENDPOINTZILLIZ_TOKENZILLIZ_INSTANCE_NAMEZILLIZ_PUBMED_COLLECTIONZILLIZ_DOC_COLLECTIONZILLIZ_SQL_COLLECTION
MODEL_NAMEzgemini-2.0-flash-001MAIN_CLIENTfalsetrueALLOWED_EMAILSr   ,ENDPOINT_IDGCP_PROJECTr	   r   Nr   
BQ_DATASETELABORATE_REPORT_COHORT_DATASETDIAGNOSIS_ICD10_DESC_TABLEDISEASE_GROUPS_TABLESTRIPE_RETURN_URLSTRIPE_CLOUD_DNS_NAMESTRIPE_SECRET_KEYT)r   STRIPE_PUBLISHABLE_KEYSTRIPE_PRICING_TABLE_ID&STRIPE_BILLING_PORTAL_CONFIGURATION_IDSTRIPE_PRICING_PAGE_FILENAMEzsubscription_pricing.htmlSTRIPE_SUBSCRIPTION_PRODUCT_1STRIPE_SUBSCRIPTION_PRICES_1STRIPE_SUBSCRIPTION_PRODUCT_2STRIPE_SUBSCRIPTION_PRICES_2r    c                 P    | j         | j        | j        | j        | j        | j        dS )z(Get ZILLIZ configuration as a dictionary)zilliz_endpointzilliz_tokenzilliz_instance_namezilliz_pubmed_collectionzilliz_doc_collectionzilliz_sql_collection)r.   r/   r0   r1   r2   r3   clss    r   get_zilliz_configzConfig.get_zilliz_configb   s7      #2,$'$<(+(D%(%>%(%>
 
 	
r   c                 8    | j         | j        | j        | j        dS )z%Get API configuration as a dictionaryr'   r(   r)   r*   rV   rR   s    r   get_api_configzConfig.get_api_confign   s+     "0 # 4"%"8 # 4	
 
 	
r   c                 ,    | j         | j        | j        dS )z-Get credentials configuration as a dictionary)national_dataset_keygcp_llm_keyfirestore_key)r+   r,   r-   rR   s    r   get_credentials_configzConfig.get_credentials_configx   s$     %($<? .
 
 	
r   c                     | j         | j        | j        | j        | j        | j        | j        | j        | j        | j	        d
S )z)Get project configuration as a dictionary)

model_namemain_clientallowed_emailsendpoint_idgcp_projectgcp_project_underscorer   
bq_datasetelaborate_report_cohort_datasetdiagnosis_icd10_desc_table)
r4   r5   r8   r:   r;   GCP_PROJECT_UNDERSCOREr   r<   r=   r>   rR   s    r   get_project_configzConfig.get_project_config   sI     .?!0??&)&@../2/R*-*H
 
 	
r   c                 \    | j         | j        | j        | j        | j        | j        | j        dS )z(Get Stripe configuration as a dictionary)
return_urlcloud_dns_name
secret_keypublishable_keypricing_table_idbilling_portal_configuration_idpricing_page_filename)r@   rA   rB   rC   rD   rE   rF   rR   s    r   get_stripe_configzConfig.get_stripe_config   s=     /!7/"9 # ;/2/Y%(%E
 
 	
r   c                     g }| j         r)| j        r"|                    | j         | j        d           | j        r)| j        r"|                    | j        | j        d           |S )z.Get Stripe subscription products configuration)productprices)rG   rH   appendrI   rJ   )rS   productss     r    get_stripe_subscription_productsz'Config.get_stripe_subscription_products   s     , 	1Q 	OO<:     , 	1Q 	OO<:     r   )6__name__
__module____qualname____doc__r$   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r   r   r4   lowerr5   r   r8   r:   r;   replacerg   r   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   classmethoddictrT   rW   r\   rh   rq   r   rw    r   r   r&   r&   0   s]       33 X.//Nx 233!"677x 233 $8$:;;(=))KH_--M h011O8N++L#8$:;;'x(BCC$H%<==$H%<== <)?@@J")M73399;;vEKCL29M]C^C^fYRY/44::3???dfN(=))K(=))K>IS[00c:::t,''J,''J&.h/P&Q&Q#!)*F!G!G#8$:;; !!455$H%<== !4TBBB%X&>tLLL&h'@NNN-5X6^-_-_*#,29-KMh#i#i  %-H-LUY$Z$Z$Z!gogo  qO  X\  h]  h]  h]  $e88,JSW#X#X#X#^#^_b#c#c#c  ce $,H-LUY$Z$Z$Z!gogo  qO  X\  h]  h]  h]  $e88,JSW#X#X#X#^#^_b#c#c#c  ce 	
$ 	
 	
 	
 [	
 
t 
 
 
 [
 
t 
 
 
 [
 
4 
 
 
 [
 

$ 

 

 

 [

 d    [  r   r&   )F)r   dotenvr   typingr   r   r   r   strboolr$   r&   configr   r   r   <module>r      s    				       ! ! ! ! ! ! ! ! 
 
 

 
 
( ( (T (hsm ( ( ( ( | | | | | | | |~ 
r   