from sqlmodel import SQLModel, create_engine, Session from db.models import Chat, Message from core.config import get_settings settings = get_settings() engine = create_engine( settings.DATABASE_URL, pool_pre_ping=True, connect_args=settings.DB_CONNECT_ARGS ) def get_db(): """ Dependency function to get a database session. Ensures the session is always closed after the request. """ with Session(engine) as session: yield session def create_db_and_tables(): """ Utility function to create database tables. """ SQLModel.metadata.create_all(engine)