U
    ûÑhR  ã                   @   sN   d Z ddlZddlmZmZ ddlmZ ddlmZ G dd„ deƒZ	e	ƒ Z
dS )z8Configuration settings for Restaurant Website Generator.é    N)ÚListÚOptional)ÚBaseSettings)ÚRequestc                   @   s  e Zd ZU dZee dd¡ƒ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< dfee edœdd„Zeedœdd„ƒZ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e d!d"¡ƒZeed#< e d$d%¡Zeed&< dgee ee dœd'd(„Zeee dœd)d*„ƒZe d+d,¡Zeed-< e d.d/¡Zeed0< e d1d2¡Z eed3< e d4d5¡Z!eed6< e d7d8¡Z"eed9< ee d:d;¡ƒZ#eed<< e d=d
¡Z$eed>< e d?d
¡Z%eed@< e dAdB¡Z&eedC< e dDdE¡Z'eedF< ee dGdH¡ƒZ(eedI< e dJdK¡Z)eedL< e dMdN¡Z*eedO< e dPd
¡Z+eedQ< e dRd
¡Z,eedS< e dTdU¡Z-eedV< e dWd¡ 	¡ dkZ.eedX< e dYdZ¡Z/eed[< e d\d¡ 	¡ dkZ0eed]< e d^d_¡Z1eed`< e dadb¡Z2eedc< G ddde„ deƒZ3dS )hÚSettingsz6Application settings for Restaurant Website Generator.ÚAPP_PORTÚ8000Úapp_portZDEBUGÚTrueÚtrueÚdebugZOPENROUTER_API_KEYÚ Úopenrouter_api_keyZOPENROUTER_TITLEzRestaurant-Website-GeneratorÚopenrouter_titleN)ÚrequestÚreturnc                 C   s¤   |r”|j j}|j d|j jpd¡}d|kr8| d¡d }|j jpN|dkrLdnd}|dkr`|dksp|dkr~|dkr~|› d	|› S |› d	|› d|› S nd
| j› S dS )zDAuto-detect current domain, protocol, and port from request context.ÚhostÚ	localhostú:r   Úhttpsi»  éP   Úhttpú://zhttp://localhost:N)ZurlZschemeZheadersÚgetÚhostnameÚsplitÚportr	   )Úselfr   Úprotocolr   r   © r   ú:/var/www/html/web-builder-api.evdpl.com/src/core/config.pyÚget_current_domain   s     zSettings.get_current_domain)r   c                 C   s   |   ¡ S )z$Auto-detect OpenRouter referrer URL.)r!   ©r   r   r   r    Úopenrouter_referrer,   s    zSettings.openrouter_referrerZAGENT_MODELzgpt-4o-miniÚagent_modelZTEMPERATUREz0.7ÚtemperatureZ
MAX_TOKENSÚ
max_tokensZMAX_REQUESTS_PER_IPÚ4Úmax_requests_per_ipZMAX_REQUESTS_WINDOWZ3600Úmax_requests_windowZ
SECRET_KEYz)your-secret-key-here-change-in-productionÚ
secret_keyc                 C   s°   |   |¡}d|kr>| dd¡\}}d|kr8| d¡d n|}nd}d}||› d|› |› d|› dg}|dkr†| d	|› d
dg¡ |dkr¤| d|› ddg¡ tt|ƒƒS )z:Auto-detect allowed origins for CORS from request context.r   é   r   r   r   r   z://localhostz://127.0.0.1zhttps://zhttps://localhostzhttps://127.0.0.1r   zhttp://zhttp://localhostzhttp://127.0.0.1)r!   r   ÚextendÚlistÚset)r   r   Zcurrent_domainr   Zdomain_with_portZdomainZoriginsr   r   r    Úget_allowed_origins=   s0    
üýýzSettings.get_allowed_originsc                 C   s   |   ¡ S )z%Auto-detect allowed origins for CORS.)r/   r"   r   r   r    Úallowed_originsd   s    zSettings.allowed_originsZTEMPLATES_DIRZ	templatesÚtemplates_dirZGENERATED_DIRztemplates/generatedÚgenerated_dirZUPLOADS_DIRZuploadsÚuploads_dirZTEMP_LOGOS_DIRZ
temp_logosÚtemp_logos_dirZSMTP_SERVERzsmtp.gmail.comÚsmtp_serverZ	SMTP_PORTZ587Ú	smtp_portZSMTP_USERNAMEÚsmtp_usernameZSMTP_PASSWORDÚsmtp_passwordZDATABASE_URLz9mysql://root:@localhost:3306/restaurant_website_generatorÚdatabase_urlZDB_HOSTr   Údb_hostZDB_PORTZ3306Údb_portZDB_NAMEZrestaurant_website_generatorÚdb_nameZDB_USERÚrootÚdb_userZDB_PASSWORDÚdb_passwordZLANGSMITH_API_KEYÚlangsmith_api_keyZLANGSMITH_PROJECTzrestaurant-website-generatorÚlangsmith_projectZLANGSMITH_TRACINGÚlangsmith_tracingZPROVIDER_ORDERztogether,fireworks,perplexityÚprovider_orderZPROVIDER_ALLOW_FALLBACKSÚprovider_allow_fallbacksZPROVIDER_IGNOREZazureÚprovider_ignoreZPROVIDER_DATA_COLLECTIONZdenyÚprovider_data_collectionc                   @   s   e Zd ZdZdZdS )zSettings.Configz.envÚignoreN)Ú__name__Ú
__module__Ú__qualname__Zenv_fileZextrar   r   r   r    ÚConfigˆ   s   rK   )N)N)4rH   rI   rJ   Ú__doc__ÚintÚosÚgetenvr	   Ú__annotations__Úlowerr   Úboolr   Ústrr   r   r   r!   Úpropertyr#   r$   Úfloatr%   r&   r(   r)   r*   r   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r>   r?   r@   rA   rB   rC   rD   rE   rF   rK   r   r   r   r    r      sN   
'r   )rL   rN   Útypingr   r   Zpydantic_settingsr   Zfastapir   r   Úsettingsr   r   r   r    Ú<module>   s    