from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from src.config.settings import settings

# Setup database mapping via SQLAlchemy using Pydantic validated Settings
engine = create_engine(
    settings.DATABASE_URL, 
    pool_pre_ping=True
)

SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

def get_db():
    """Dependency injection helper for FastAPI routes to grab a DB session."""
    db = SessionLocal()
    try:
        yield db
    finally:
        db.close()
