o
    g                     @   sR   d dl mZmZ d dlmZ d dlmZmZmZ d dl	Z	G dd deZ
e
 ZdS )    )ListUnion)BaseSettings)Field
AnyHttpUrl	validatorNc                   @   s  e Zd ZU dZeed< edddZeed< dZe	ed< edddZ
eed< edd	dZeed	< edd
dZeed
< edddZeed< edddZeed< g dZee ed< edddZeed< edddZeed< edddZe	ed< edddZeed< edddZeed< edddZeed< edddZeed< ejddZeed< edddZeed< edddZeed< edddZeed< edddZ eed< edddZ!eed< edddZ"eed< edddZ#eed< dZ$e%ed < dZ&e%ed!< d"Z'e	ed#< d$Z(e	ed%< d&Z)e	ed'< d$Z*e	ed(< e+dd)d*d+e,eee f d,e,ee ef fd-d.Z-e+dd+ed,efd/d0Z.G d1d2 d2Z/e0d,efd3d4Z1d5S )6Settingsz/api/v1
API_V1_STR.
SECRET_KEY)envi  ACCESS_TOKEN_EXPIRE_MINUTES
MYSQL_USERMYSQL_PASSWORD
MYSQL_HOST
MYSQL_PORTMYSQL_DATABASE)zhttp://localhost:3000zhttp://localhost:8000zhttp://localhost:9000z/https://adimsayar.s3.eu-central-1.amazonaws.comzhttp://192.168.9.24:8000zhttp://192.168.1.6:8000BACKEND_CORS_ORIGINSMAIL_MAILER	MAIL_HOST	MAIL_PORTMAIL_USERNAMEMAIL_PASSWORDMAIL_ENCRYPTIONMAIL_FROM_ADDRESSTIMEZONEzEurope/IstanbulAWS_S3_ENDPOINT_URLAWS_S3_BUCKETAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYFIREBASE_PROJECT_IDFIREBASE_PRIVATE_KEYFIREBASE_CLIENT_EMAILg      ? REFERRAL_DIRECT_BONUS_PERCENTAGEREFERRAL_CHAIN_DECAY   REFERRAL_MAX_LEVELd   REFERRAL_SIGNUP_BONUSi'  ACHIEVEMENT_STEP_GOALACHIEVEMENT_BONUST)prevreturnc                 C   sB   t |tr|dsdd |dD S t |ttfr|S t|)N[c                 S   s   g | ]}|  qS  )strip).0ir.   r.   /app/app/core/config.py
<listcomp>=   s    z2Settings.assemble_cors_origins.<locals>.<listcomp>,)
isinstancestr
startswithsplitlist
ValueErrorclsr+   r.   r.   r2   assemble_cors_origins:   s
   zSettings.assemble_cors_originsc                 C   s   |rd|v r| ddS |S )ul   
        환경 변수에서 개행 문자가 제대로 처리되지 않는 경우를 위한 처리
        z\n
)replacer;   r.   r.   r2   decode_private_keyB   s   zSettings.decode_private_keyc                   @   s   e Zd ZdZdZdS )zSettings.ConfigTz.envN)__name__
__module____qualname__case_sensitiveenv_filer.   r.   r.   r2   ConfigK   s    rF   c              
   C   s,   d| j  d| j d| j d| j d| j 
S )Nzmysql+mysqlconnector://:@/)r   r   r   r   r   )selfr.   r.   r2   SQLALCHEMY_DATABASE_URIO   s   
z Settings.SQLALCHEMY_DATABASE_URIN)2rA   rB   rC   r	   r6   __annotations__r   r
   r   intr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   osenvirongetr   r   r   r   r   r   r    r!   r"   floatr#   r%   r'   r(   r)   r   r   r=   r@   rF   propertyrK   r.   r.   r.   r2   r      sL   
 

,r   )typingr   r   Zpydantic_settingsr   pydanticr   r   r   rN   r   settingsr.   r.   r.   r2   <module>   s    
Q