o
    Žh"
  ã                   @   sJ   d Z ddlZddlZddlmZ ddlmZ eƒ  G dd„ dƒZeƒ ZdS )z^
Application configuration settings.
Handles environment variables and application constants.
é    N)ÚList)Úload_dotenvc                   @   s  e Zd ZU dZe dd¡Zeed< e	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d„ƒZe dd¡Zeed< dZeed< e	e dd¡ƒZe	ed< edee fdd„ƒZ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	e dd¡ƒZe	ed< e	e dd¡ƒZe	ed< e	e d d!¡ƒZe	ed < e d"d#¡Zeed"< e d$d%¡ ¡ d%kZeed$< e d&d%¡ ¡ d%kZ eed&< e d'd%¡ ¡ d%kZ!eed'< e d(d)¡Z"eed(< e d*d+¡Z#eed*< d,S )-ÚSettingsz7Application settings loaded from environment variables.ÚDB_HOSTÚ	localhostÚDB_PORTÚ3306ÚDB_NAMEÚaiguideÚDB_USERÚrootÚDB_PASSWORDÚ Úreturnc              
   C   s,   d| j › d| j› d| j› d| j› d| j› 
S )zMySQL database connection URL.zmysql+pymysql://ú:ú@ú/)r   r   r   r   r	   )Úself© r   ú'/var/www/html/aiguide_backend/config.pyÚDATABASE_URL   s   ,zSettings.DATABASE_URLÚ
SECRET_KEYz$your-secret-key-change-in-productionÚHS256Ú	ALGORITHMÚACCESS_TOKEN_EXPIRE_MINUTESÚ30c                 C   s6   t  dd¡}zt |¡W S  tjy   ddg Y S w )z0Parse allowed origins from environment variable.ÚALLOWED_ORIGINSz/["http://localhost:3000", "https://aiguid.app"]zhttp://localhost:3000zhttps://aiguid.app)ÚosÚgetenvÚjsonÚloadsÚJSONDecodeError)r   Úorigins_strr   r   r   r   #   s   ÿzSettings.ALLOWED_ORIGINSÚGOOGLE_CLIENT_IDÚGOOGLE_CLIENT_SECRETÚGOOGLE_REDIRECT_URIz+https://aiguid.app/api/auth/google/callbackÚ
SENTRY_DSNÚCACHE_TTL_MINUTESÚ5ÚRATE_LIMIT_REQUESTSÚ100ÚRATE_LIMIT_WINDOWÚ60Ú	LOG_LEVELÚINFOÚENABLE_RATE_LIMITINGÚtrueÚENABLE_CORSÚENABLE_HTTPS_REDIRECTÚAPP_NAMEz
Aiguid APIÚAPP_VERSIONz1.0.0N)$Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   ÚstrÚ__annotations__Úintr   r	   r   r   Úpropertyr   r   r   r   r   r   r#   r$   r%   r&   r'   r)   r+   r-   Úlowerr/   Úboolr1   r2   r3   r4   r   r   r   r   r      s6   
 	r   )	r8   r   r   Útypingr   Údotenvr   r   Úsettingsr   r   r   r   Ú<module>   s    
9