from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, Session

from govcrawler.settings import get_settings


def get_engine():
    s = get_settings()
    return create_engine(s.db_url, echo=False, future=True, pool_pre_ping=True)


def get_sessionmaker() -> sessionmaker[Session]:
    return sessionmaker(bind=get_engine(), expire_on_commit=False, class_=Session)
