# app/core/session.py from sqlalchemy.orm import Session from sqlalchemy.exc import SQLAlchemyError from app.db import models class SessionService: def __init__(self): pass def create_session(self, db: Session, user_id: str, provider_name: str) -> models.Session: """ Creates a new chat session in the database. Args: db (Session): The SQLAlchemy database session. user_id (str): The ID of the user creating the session. provider_name (str): The name of the LLM provider for the session. Returns: models.Session: The newly created session object. Raises: SQLAlchemyError: If a database error occurs during session creation. """ try: new_session = models.Session(user_id=user_id, provider_name=provider_name, title=f"New Chat Session") db.add(new_session) db.commit() db.refresh(new_session) return new_session except SQLAlchemyError as e: db.rollback() raise