
    'i                        S r SSKrSSKJr  \ " S S5      5       r\ " S S5      5       r\ " S S	5      5       r\ " S
 S5      5       rS\4S jrS\4S jr	S\4S jr
S\4S jrS r\S:X  a  \" S5        \" S5        \" S\" 5       R                   S\" 5       R                    35        \" S\" 5       R"                   35        \" S\" 5       R                   S\" 5       R                    35        \" S\" 5       R$                   35        \" 5         \" S5        \" 5       r\R)                  5        H  u  rr\" S\ S\ 35        M     gg)a  
Genesis Elestio Infrastructure Configuration

Central configuration for all Elestio cloud services.
Import this module to get connection details for PostgreSQL, Qdrant, and Redis.

Usage:
    from elestio_config import PostgresConfig, QdrantConfig, RedisConfig

    # PostgreSQL
    conn = psycopg2.connect(PostgresConfig.connection_string)

    # Qdrant
    client = QdrantClient(url=QdrantConfig.url, api_key=QdrantConfig.api_key)

    # Redis
    r = redis.from_url(RedisConfig.connection_string)
    N)	dataclassc                       \ rS rSr% SrSr\\S'   Sr\	\S'   Sr
\\S'   S	r\\S
'   Sr\\S'   \S\4S j5       r\S\4S j5       rSrg)PostgresConfig   z+PostgreSQL (Episodic Memory) configuration.z(postgresql-genesis-u50607.vm.elestio.apphostiXc  portpostgresuserzetY0eog17tD-dDuj--IRHpassworddatabasereturnc           
          SU R                    SU R                   SU R                   SU R                   SU R                   3
$ )Nzpostgresql://:@/)r
   r   r   r   r   selfs    7E:\genesis-system/data/genesis-memory\elestio_config.pyconnection_string PostgresConfig.connection_string!   s@    tyyk4==/499+QtyykQRSWS`S`Rabb    c                     U " 5       nUR                   UR                  UR                  UR                  UR                  S.$ )z'Get connection parameters for psycopg2.r   r   r
   r   r   r   clsconfigs     r   get_connection_params$PostgresConfig.get_connection_params%   s8     KKKKKK
 	
r    N)__name__
__module____qualname____firstlineno____doc__r   str__annotations__r   intr
   r   r   propertyr   classmethoddictr   __static_attributes__r   r   r   r   r      sn    5:D#:D#D#+Hc+Hcc3 c c 	
d 	
 	
r   r   c                       \ rS rSr% SrSr\\S'   Sr\	\S'   Sr
\\S'   S	r\\S
'   Sr\	\S'   Sr\\S'   \S\4S j5       r\S\4S j5       rSrg)QdrantConfig2   z%Qdrant (Vector Memory) configuration.z"qdrant-b3knu-u50607.vm.elestio.appr   i  r   @7b74e6621bd0e6650789f6662bca4cbf4143d3d1d710a0002b3b563973ca6876api_keygenesis_vectorscollection_namei   vector_sizeCosinedistancer   c                 :    SU R                    SU R                   3$ )Nhttps://r   )r   r   r   s    r   urlQdrantConfig.url<   s    $))Adii[11r   c                 B    U " 5       nUR                   UR                  S.$ )z Get parameters for QdrantClient.r8   r0   r;   r   s     r   get_client_paramsQdrantConfig.get_client_params@   s#     ::~~
 	
r   r   N)r    r!   r"   r#   r$   r   r%   r&   r   r'   r0   r2   r3   r5   r(   r8   r)   r*   r<   r+   r   r   r   r-   r-   2   su    /4D#4D#UGSU,OS,KHc2S 2 2 
$ 
 
r   r-   c                       \ rS rSr% SrSr\\S'   Sr\	\S'   Sr
\\S'   S	r\\S
'   \S\4S j5       r\S\4S j5       r\S\4S j5       rSrg)RedisConfigJ   z%Redis (Working Memory) configuration.z#redis-genesis-u50607.vm.elestio.appr   ig  r   defaultr
   ze2ZyYYr4oWRdASI2CaLc-r   r   c                 n    SU R                    SU R                   SU R                   SU R                   3$ )Nzredis://r   r   )r
   r   r   r   r   s    r   r   RedisConfig.connection_stringR   s1    $))Admm_Adii[$))MMr   c                 p    U " 5       nUR                   UR                  UR                  UR                  SS.$ )z'Get connection parameters for redis-py.T)r   r   usernamer   decode_responsesr   r   r
   r   r   s     r   r   !RedisConfig.get_connection_paramsV   s4     KKKK $
 	
r   c                 "    U R                  5       $ )z9Alias for get_connection_params (backward compatibility).)r   )r   s    r   r<   RedisConfig.get_client_paramsb   s     ((**r   r   N)r    r!   r"   r#   r$   r   r%   r&   r   r'   r
   r   r(   r   r)   r*   r   r<   r+   r   r   r   r?   r?   J   s    /5D#5D#D#+Hc+N3 N N 	
d 	
 	
 +$ + +r   r?   c                   t    \ rS rSr% SrSr\\S'   Sr\	\S'   Sr
\\S'   \S	\4S
 j5       r\S	\4S j5       rSrg)	N8NConfigh   z+n8n (Workflow Orchestration) configuration.z!n8n-genesis-u50607.vm.elestio.appr   i  r   zeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxZTA3Y2UwYi1lZmZmLTRlODItOGRkZS02ODA3OGZiNjU4MDQiLCJpc3MiOiJuOG4iLCJhdWQiOiJwdWJsaWMtYXBpIiwiaWF0IjoxNzY2Nzc2MDAyfQ.viRWPPX8t6cTqXEtBEw7pj-0ar_Nvjrh0_8T1LGLi6or0   r   c                 "    SU R                    S3$ )Nr7   z/api/v1)r   r   s    r   api_urlN8NConfig.api_urlo   s    $))G,,r   c                     SU R                   0$ )NzX-N8N-API-KEY)r0   r   s    r   headersN8NConfig.headerss   s    ..r   r   N)r    r!   r"   r#   r$   r   r%   r&   r   r'   r0   r(   rO   r*   rR   r+   r   r   r   rL   rL   h   s\    53D#3D#O eGS  e- - - / / /r   rL   r   c            
         [        [        R                  R                  S[         R                  5      [        [        R                  R                  S[         R                  5      5      [        R                  R                  S[         R                  5      [        R                  R                  S[         R                  5      [        R                  R                  S[         R                  5      S9$ )z-Get PostgreSQL config with env var overrides.GENESIS_POSTGRES_HOSTGENESIS_POSTGRES_PORTGENESIS_POSTGRES_USERGENESIS_POSTGRES_PASSWORDGENESIS_POSTGRES_DATABASEr   )
r   osenvirongetr   r'   r   r
   r   r   r   r   r   get_postgres_configr]   y   s    ZZ^^3^5H5HI 79L9LMNZZ^^3^5H5HI ;^=T=TU ;^=T=TU r   c            	      2   [        [        R                  R                  S[         R                  5      [        [        R                  R                  S[         R                  5      5      [        R                  R                  S[         R                  5      S9$ )z)Get Qdrant config with env var overrides.GENESIS_QDRANT_HOSTGENESIS_QDRANT_PORTGENESIS_QDRANT_API_KEY)r   r   r0   )r-   rZ   r[   r\   r   r'   r   r0   r   r   r   get_qdrant_configrb      s_    ZZ^^1<3D3DE 5|7H7HIJ

79M9MN r   c            	         [        [        R                  R                  S[         R                  5      [        [        R                  R                  S[         R                  5      5      [        R                  R                  S[         R                  5      [        R                  R                  S[         R                  5      S9$ )z(Get Redis config with env var overrides.GENESIS_REDIS_HOSTGENESIS_REDIS_PORTGENESIS_REDIS_USERGENESIS_REDIS_PASSWORDrG   )	r?   rZ   r[   r\   r   r'   r   r
   r   r   r   r   get_redis_configrh      sx    ZZ^^0+2B2BC 4k6F6FGHZZ^^0+2B2BC 8+:N:NO	 r   c                      [        [        R                  R                  S[         R                  5      [        R                  R                  S[         R
                  5      S9$ )z&Get n8n config with env var overrides.GENESIS_N8N_HOSTGENESIS_N8N_API_KEY)r   r0   )rL   rZ   r[   r\   r   r0   r   r   r   get_n8n_configrl      s?    ZZ^^.	?

4i6G6GH r   c                     0 n  SSK n[        5       nUR                  " S0 [        R	                  5       D6nUR                  5       nUR                  S5        UR                  5         SU S'    SSK	n[        5       nUR                  UR                   S3SUR                  0S	S
9nUR                  S:X  a  SU S'   OSUR                   3U S'     SSKn[!        5       nUR"                  " S0 [$        R	                  5       D6n	U	R'                  5         SU S'   U $ ! [         a  nSU 3U S'    SnANSnAff = f! [         a  nSU 3U S'    SnANSnAff = f! [         a  nSU 3U S'    SnAU $ SnAff = f)z%Test all Elestio service connections.r   NzSELECT 1u   ✅ Connected
postgresqlu   ❌ z/collectionszapi-key
   )rR   timeout   qdrantu   ❌ Status redisr   )psycopg2r]   connectr   r   cursorexecuteclose	Exceptionrequestsrb   r\   r8   r0   status_coders   rh   Redisr?   ping)
resultsrt   r   connrv   erz   resprs   rs
             r   test_connectionsr      s|   G	+$&I."F"F"HIz"

 /
'"$||zzl,'/  

 s" /GH"-d.>.>-? @GH
&!#KK>+;;=>	* N;  +"&qc
+   '"1#J'  &!!:N&sP   A(D -AD7 ;D7 AE 
D4"D//D47
EEE
E3 E..E3__main__zGenesis Elestio Configurationz(========================================zPostgreSQL: r   zQdrant:     zRedis:      zn8n:        zTesting connections...z  z: )r$   rZ   dataclassesr   r   r-   r?   rL   r]   rb   rh   rl   r   r    printr   r   r8   rO   r~   itemsservicestatusr   r   r   <module>r      s  & 
 ! 
 
 
2 
 
 
. + + +: / / / ^ < + 	 *Z z	
)*	(O	L)../q1A1F1F0G
HI	L++,
-.	L++,Akm.@.@-A
BC	L,,-
./	G	
"# G"==?7)2fX&' + r   