from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, declarative_base from actions.config.config import Config # Base para os modelos ORM Base = declarative_base() def get_database_settings(): """Lê as configurações do arquivo database/postgres.json""" return Config.get("database/postgres.json") def get_postgres_engine(): """Cria e retorna a engine PostgreSQL.""" db = get_database_settings() dsn = ( f"postgresql+psycopg2://{db.user}:{db.password}@" f"{db.host}:{db.port}/{db.name}" ) engine = create_engine( dsn, echo=bool(getattr(db, "debug", False)), pool_pre_ping=bool(db.pool.pre_ping), pool_size=int(db.pool.size), max_overflow=int(db.pool.max_overflow), connect_args={"connect_timeout": 10}, ) return engine # Criação da engine global engine = get_postgres_engine() # Criação da sessão ORM (SessionLocal) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)