U
    ÔFjè  ã                   @  s<   d Z ddlmZ ddlZddlmZ eƒ  G dd„ dƒZdS )z;Application configuration from environment (python-dotenv).é    )ÚannotationsN)Úload_dotenvc                   @  s4  e Zd Zej d¡pej d¡Zej dd¡Zej dd¡Zej dd¡Z	e
ej d	d
¡ƒZej dd¡Zej dd¡pzd ¡  d¡Zej dd¡p²ej dd¡p²ej dd¡p²d ¡ Zej dd¡pÈd ¡ Zej dd¡pÞd ¡ Zej dd¡Zej dd¡ ¡ dkZej d¡pdZej dd¡ ¡ dkZej dd¡ ¡ dkZej dd¡ ¡ Zed d!œd"d#„ƒZed d!œd$d%„ƒZed&d!œd'd(„ƒZed)d!œd*d+„ƒZed,d)d-œd.d/„ƒZej d0¡pÄd ¡ Z e rÞde  d¡ ndZ!ej d1¡pòd ¡ Z"e#d2d3„ e" $d4¡D ƒƒZ%ed&d d5œd6d7„ƒZ&ed8d9„ ƒZ'dS ):ÚConfigZFLASK_SECRET_KEYÚ
SECRET_KEYÚ
MYSQL_HOSTz92.113.33.100Ú
MYSQL_USERÚrootÚMYSQL_PASSWORDZpctrimÚ
MYSQL_PORTZ3308ÚMYSQL_DATABASEZloja2001Ú	UZAPI_URLÚ ú/ÚUZAPI_ADMIN_TOKENZUZAPI_ADMTOKENZ
admintokenÚUZAPI_TOKENÚUZAPI_DDI_PADRAOZ55ÚSESSION_COOKIE_SAMESITEÚLaxÚSESSION_COOKIE_SECURE)Ú1ÚtrueÚyesÚSESSION_COOKIE_DOMAINNÚFLASK_DEBUGÚLOG_SESSION_DEBUGÚENVIRONMENTÚdevelopmentÚbool)Úreturnc                 C  s
   | j dkS )N©Ú
productionÚprod©r   ©Úcls© r%   ú&/var/www/html/LojaOnline_hml/config.pyÚis_production,   s    zConfig.is_productionc                 C  s
   | j dkS )N)ZhomologationZhomologÚhmlZstagingr"   r#   r%   r%   r&   Úis_homologation0   s    zConfig.is_homologationz
str | Nonec                 C  s   |   ¡ rdS |  ¡ rdS d S )Nu   HOMOLOGAÃ‡ÃƒOu
   PRODUÃ‡ÃƒO)r)   r'   r#   r%   r%   r&   Úenvironment_label4   s
    zConfig.environment_labelÚNonec                 C  sr   | j pd ¡ }| jpd ¡ }|dkrF|dkr4tdƒ‚|  ¡ sntdƒ‚n(|dkrn|dkr^tdƒ‚|  ¡ sntd	ƒ‚d
S )uO   Valida combinaÃ§Ã£o banco+usuÃ¡rio+ambiente (sÃ³ usuÃ¡rios dedicados pctrim_*).r   Zpctrim_prodZpctrim_commercez0pctrim_prod exige MYSQL_DATABASE=pctrim_commercez(pctrim_prod exige ENVIRONMENT=productionZ
pctrim_hmlZpctrim_commerce_hmlz3pctrim_hml exige MYSQL_DATABASE=pctrim_commerce_hmlz)pctrim_hml exige ENVIRONMENT=homologationN)r   Ústripr   ÚRuntimeErrorr'   r)   )r$   ÚdbÚuserr%   r%   r&   Úvalidate_database_environment<   s    
z$Config.validate_database_environmentÚstr)Úreasonr   c                 C  s   |   ¡ rtd|› ƒ‚d S )Nu   Bloqueado em produÃ§Ã£o: )r'   r-   )r$   r2   r%   r%   r&   Úrequire_non_productionL   s    zConfig.require_non_productionZLOJA_URL_PREFIXÚPLATFORM_ADMIN_USERSc                 c  s"   | ]}|  ¡ r|  ¡  ¡ V  qd S ©N©r,   Úlower©Ú.0Úur%   r%   r&   Ú	<genexpr>W   s     zConfig.<genexpr>Ú,)Úusuarior   c                 C  sL   t j d¡pd ¡ }tdd„ | d¡D ƒƒ}|r4|s8dS t|ƒ ¡  ¡ |kS )Nr4   r   c                 s  s"   | ]}|  ¡ r|  ¡  ¡ V  qd S r5   r6   r8   r%   r%   r&   r;   ^   s      z+Config.is_platform_admin.<locals>.<genexpr>r<   F)ÚosÚenvironÚgetr,   Ú	frozensetÚsplitr1   r7   )r$   r=   ÚrawZadminsr%   r%   r&   Úis_platform_admin[   s
    zConfig.is_platform_adminc                 C  sf   | j s| jdkrd| _ g }| j s*| d¡ | jdkrD| jsD| d¡ |rZtdd |¡ ƒ‚|  ¡  d S )N)r   ÚdevÚlocalzdev-only-change-mez FLASK_SECRET_KEY (ou SECRET_KEY)r   r	   u%   ConfiguraÃ§Ã£o obrigatÃ³ria ausente: z, )r   r   Úappendr	   r-   Újoinr0   )r$   Úmissingr%   r%   r&   Úvalidate_requiredc   s    


zConfig.validate_required)(Ú__name__Ú
__module__Ú__qualname__r>   r?   r@   r   r   r   r	   Úintr
   r   r,   Úrstripr   r   r   r   r   r7   r   r   r   r   r   Úclassmethodr'   r)   r*   r0   r3   Z_raw_prefixÚ
URL_PREFIXZ_platform_adminsrA   rB   r4   rD   rJ   r%   r%   r%   r&   r      sT   ÿþüÿr   )Ú__doc__Ú
__future__r   r>   Údotenvr   r   r%   r%   r%   r&   Ú<module>   s
   