# 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