from __future__ import annotations from sqlalchemy import create_engine from sqlalchemy.engine import Engine from sqlalchemy.orm import sessionmaker, Session from app.core.config import settings def create_postgres_engine() -> Engine: return create_engine( settings.postgres_connection_url, pool_pre_ping=True, pool_recycle=1800, pool_size=5, max_overflow=10, future=True, ) def create_session_factory(engine: Engine) -> sessionmaker[Session]: return sessionmaker( bind=engine, autoflush=False, autocommit=False, expire_on_commit=False, )