
    tĀi                     p    d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	 dee   fdZ
 G d d	e      Zdefd
Zy)za
Pydantic settings for content pipeline.
Loads from .env with fallback to parent directory .env.
    )Path)Optional)Field)BaseSettingsSettingsConfigDictreturnc                      t        t              j                  j                  dz  } | j                         r| S t        t              j                  j                  j                  dz  }|j                         r|S y)z.Find .env file in current or parent directory.z.envN)r   __file__parentexists)currentr   s     1/var/www/html/content-pipeline/config/settings.pyfind_env_filer      s\    8n##**V3G~~(^""))0069F}}    c                      e Zd ZU dZ e e       dd      Z edd      Ze	e
d<    ed	d
      Zee	   e
d<    edd      Ze	e
d<    edd      Ze	e
d<    edd      Ze	e
d<    edd      Ze	e
d<    edd      Ze	e
d<    edd      Zee
d<    edd      Ze	e
d<    edd      Ze	e
d <    edd!      Ze	e
d"<    ed#d$      Ze	e
d%<    ed&d'      Zee
d(<   ed)efd*       Zed)ee	e	f   fd+       Zy	),Settingsz7Application settings loaded from environment variables.zutf-8ignore)env_fileenv_file_encodingextra.GEMINI_API_KEY)aliasgemini_api_keyNGEMINI_FALLBACK_API_KEYgemini_fallback_api_keyFAL_API_KEYfal_api_keyzhttp://localhost:1010WP_URLwp_urlWP_USERNAMEwp_usernameWP_APPLICATION_PASSWORDwp_application_passwordz	127.0.0.1DB_HOSTdb_hosti  DB_PORTdb_port	wordpressDB_NAMEdb_namerootDB_USERdb_userDB_PASSWORDdb_passwordINFO	LOG_LEVEL	log_levelFDRY_RUNdry_runr   c                 v    | j                   | j                  | j                  | j                  | j                  dS )z'Return database connection config dict.)hostportdatabaseuserpassword)r%   r'   r*   r-   r/   selfs    r   	db_configzSettings.db_config:   s3     LLLLLL((
 	
r   c                 2    | j                   | j                  fS )z"Return WordPress basic auth tuple.)r!   r#   r;   s    r   wp_authzSettings.wp_authE   s       $">">??r   )__name__
__module____qualname____doc__r   r   model_configr   r   str__annotations__r   r   r   r   r!   r#   r%   r'   intr*   r-   r/   r2   r4   boolpropertydictr=   tupler?    r   r   r   r      sJ   A%!L  +;<NC<-24?X-YXc]Y S6K6 /x@FC@S6K6#(4M#NSN I6GS6Y/GS/I6GS6y1GS1S6K6 65Is5%y1GT1
4 
 
 @sCx @ @r   r   c                      t               S )zGet cached settings instance.)r   rL   r   r   get_settingsrN   K   s
    :r   N)rC   pathlibr   typingr   pydanticr   pydantic_settingsr   r   r   r   rN   rL   r   r   <module>rS      sC   
    >
x~ 
.@| .@bh r   