""" Database configuration module. This module provides database session management. Configuration is now centralized in app.config.Settings. """ import os from typing import Generator from sqlalchemy import create_engine from sqlalchemy.orm import Session, sessionmaker from app.config import get_settings def get_engine(): """Create SQLAlchemy engine from settings.""" settings = get_settings() return create_engine( settings.DATABASE_URL, pool_size=settings.DATABASE_POOL_SIZE, max_overflow=settings.DATABASE_MAX_OVERFLOW, pool_timeout=settings.DATABASE_POOL_TIMEOUT, pool_recycle=settings.DATABASE_POOL_RECYCLE, ) # Create engine and session factory _engine = get_engine() _SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=_engine) def get_db_session() -> Generator[Session, None, None]: """Get database session with automatic cleanup. Yields: Session: SQLAlchemy session """ session: Session = _SessionLocal() try: yield session finally: session.close()