Newer
Older
cortex-hub / ai-hub / app / core / services / session.py
# app/core/services/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