o
    i1                  
   @  s   d dl mZ d dlZd dlmZ d dlmZmZmZ d dl	m
Z
 e Ze
jZeeddeedd	eed
dddZeeeddddZdd Zdd ZdS )    )annotationsN)create_engine)declarative_basesessionmakerscoped_session)ConfigTi  DB_POOL_SIZE5DB_MAX_OVERFLOW10)pool_pre_pingpool_recycle	pool_sizemax_overflowfutureF)bind
autocommit	autoflushr   c                   C  s   t  S )zFDevuelve una Session lista para usar; cierra/commit la hace el caller.)SessionLocal r   r   '/var/www/html/flask_server/config/db.pyget_session   s   r   c                 C  s   t | _| jddd}| S )uD   Adjunta una fábrica de sesión a la app Flask y configura teardown.Nc                 S  s   t   d S N)r   remove)excr   r   r   remove_session'   s   z#init_db_app.<locals>.remove_sessionr   )r   sessionteardown_appcontext)appr   r   r   r   init_db_app#   s   r   )
__future__r   os
sqlalchemyr   sqlalchemy.ormr   r   r   config.baser   BaseSQLALCHEMY_DATABASE_URIDATABASE_URLintgetenvenginer   r   r   r   r   r   r   <module>   s(   
