o
    6\j                     @   s   d dl Z d dlmZ e je je jeZee jed dde	de
de
fdd	Zde	d
e	dee	 fddZG dd dZG dd deZG dd deZG dd deZeeedZdS )    N)load_dotenvz.envFnamedefaultreturnc                 C   s$   t | t|}t|  dv S )N)1trueyesyon)osgetenvstrstriplower)r   r   val r   config/base.pyenv_bool	   s   r   default_csvc                 C   s$   t | |}tdd |dD S )Nc                 S   s   g | ]
}|  r|  qS r   r   .0pr   r   r   
<listcomp>   s    zenv_set.<locals>.<listcomp>,)r   r   setsplit)r   r   rawr   r   r   env_set   s   r   c                   @   s  e Zd ZdZeddZeddZeddZ	edd	Z
d
ZeddZeddZedejedddZeddZeeddZed d ZeddZeddZeddZeddZed d!Zed"d#Zed$d%Zed&eZed'eZed(eZ ed)d*Z!ed+eZ"ed,eZ#e d-e" d.e# d/e d.e  d0e! Z$ed1eZ%ed2eZ&ed3d%Z'ed4d%Z(e d-e d.e d/e d.e d0e Z)d5Z*ed6dZ+ed7d%Z,ed8d5Z-d9d: ed;d<.d=D Z/e0d>d? Z1d@S )AConfigu.   Configuración base para todas las apps Flask.APP_ENVdev	FLASK_ENVdevelopmentFLASK_DEBUGT
SECRET_KEYchangeme123RS256JWT_AUDIENCEzabsolutems-apiJWT_ALLOWED_ISSUERSzhttps://absolutems.com.auJWT_PUBLIC_KEYS_DIRplatformsecrets	site_keysOPENAI_MODELzgpt-4o-miniMAX_UPLOAD_MB   i   ALLOWED_EXTENSIONSzpdf,png,jpg,jpeg	DB_ENGINEzmysql+pymysqlDB_HOST	localhostDB_PORT3306DB_NAMEtenant_absolutemsDB_USERrootDB_PASSWORD CONTROL_DB_ENGINECONTROL_DB_HOSTCONTROL_DB_PORTCONTROL_DB_NAMEabsolutems_control_planeCONTROL_DB_USERCONTROL_DB_PASSWORDz://:@/PROVISION_DB_HOSTPROVISION_DB_PORTPROVISION_DB_USERPROVISION_DB_PASSWORDFENABLE_DEBUG_LOGSDEV_ALLOWED_ORIGINSDEV_BYPASS_JWTc                 C   s   g | ]}|  qS r   r   r   r   r   r   r   V   s    zConfig.<listcomp>DEV_IP_WHITELISTz127.0.0.1,::1r   c                 C   sH   t jr"tdt j  tdt j dt j  tdt j d dS dS )z0Hook opcional para inicializaciones adicionales.z[CONFIG] Flask environment: z[CONFIG] DB: z @ z[CONFIG] Upload limit: z MBN)r   rK   printr"   r2   r3   r/   )appr   r   r   init_appX   s
   zConfig.init_appN)2__name__
__module____qualname____doc__r   r   r    r"   r   r$   r%   JWT_ALGORITHMr(   r)   pathjoinBASE_DIRr*   r.   intr/   MAX_CONTENT_LENGTHr   r1   r2   r3   r5   r7   r9   r;   r=   r>   r?   r@   rB   rC   CONTROL_SQLALCHEMY_DATABASE_URIrG   rH   rI   rJ   SQLALCHEMY_DATABASE_URISQLALCHEMY_TRACK_MODIFICATIONSrK   rL   rM   r   rN   staticmethodrQ   r   r   r   r   r      sd    

$

r   c                   @   s   e Zd ZdZdZdS )DevelopmentConfigTFNrR   rS   rT   DEBUGTESTINGr   r   r   r   r`   a       r`   c                   @      e Zd ZdZdZdS )ProductionConfigFNra   r   r   r   r   rf   f   rd   rf   c                   @   re   )TestingConfigTNra   r   r   r   r   rg   k   rd   rg   )r#   
productiontesting)F)r   dotenvr   rW   abspathdirname__file__rY   rX   r   boolr   r   r   r   r`   rf   rg   configr   r   r   r   <module>   s    N
