from sqlalchemy.orm import Session import models, schemas from fastapi import HTTPException # def create_user(db: Session, user: schemas.UserCreate): # db_user = models.User(username=user.username) # db.add(db_user) # db.commit() # db.refresh(db_user) # return db_user def get_or_create_user(db: Session, username: str): user = db.query(models.User).filter(models.User.username == username).first() if not user: user = models.User(username=username) db.add(user) db.commit() db.refresh(user) return user def add_message(db: Session, message: schemas.MessageBase, username: str): user = get_or_create_user(db, username) message = models.Message(**message.dict()) message.user = user db.add(message) db.commit() db.refresh(message) return message def get_user_chat_history(db: Session, username: str): user = db.query(models.User).filter(models.User.username == username).first() if not user: return [] return db.query(models.Message).filter(models.Message.user_id == user.id).all()