from sqlalchemy.orm import sessionmaker from models import Database_Entity from repository import ConfigDatabase as cf detail_chat = Database_Entity.DetailChat chat_history = Database_Entity.ChatHistory def getListDetailChatByChatId(chat_id: int) -> detail_chat: try: engine = cf.get_db_engine1() Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) with Session() as session: chat_record= session.query(detail_chat).filter(detail_chat.chat_id == chat_id) session.commit() if chat_record: session.close() return chat_record else: session.close() return None except: engine = cf.get_db_engine() Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) with Session() as session: chat_record= session.query(detail_chat).filter(detail_chat.chat_id == chat_id) session.commit() if chat_record: session.close() return chat_record else: session.close() return None def addDetailChat(chat_id: int, YouMessage: str, AiMessage: str, data_relevant: str, source_file: str) -> None: try: engine = cf.get_db_engine() Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) with Session() as session: new_user = detail_chat( chat_id = chat_id, YouMessage = YouMessage, AiMessage = AiMessage, data_relevant = data_relevant, source_file = source_file ) session.add(new_user) session.commit() return new_user.id session.close() except: engine = cf.get_db_engine1() Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) with Session() as session: new_user = detail_chat( chat_id=chat_id, YouMessage=YouMessage, AiMessage=AiMessage, data_relevant=data_relevant, source_file=source_file ) session.add(new_user) session.commit() return new_user.id session.close() def getDetailChatByChatId(id: int) -> detail_chat: try: engine = cf.get_db_engine() Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) with Session() as session: try: chat = session.query(detail_chat).filter(detail_chat.id == id).one_or_none() return chat except: session.close() return False except: engine = cf.get_db_engine1() Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) with Session() as session: try: chat = session.query(detail_chat.id,detail_chat.data_relevant,detail_chat.source_file).filter(detail_chat.id == id).one_or_none() session.commit() session.close() return chat except: session.close() return False def delete_chat_detail(chat_name: str) -> bool: try: engine = cf.get_db_engine() Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) with Session() as session: try: detail_chat2 = session.query(detail_chat).filter(detail_chat.chat_id == chat_history.id).filter(chat_history.name_chat == chat_name) session.query(detail_chat).filter(detail_chat.chat_id == chat_history.id).filter(chat_history.name_chat == chat_name).delete(synchronize_session=False) session.commit() session.close() return True except: session.close() return False except: engine = cf.get_db_engine1() Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) with Session() as session: try: session.query(detail_chat).filter(detail_chat.chat_id == chat_history.id).filter(chat_history.name_chat == chat_name).delete(synchronize_session=False) session.commit() session.close() return True except: session.close() return False def delete_chat_detail_by_id(id_chat_detail: int) -> bool: try: engine = cf.get_db_engine() Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) with Session() as session: try: session.query(detail_chat).filter(detail_chat.id == id_chat_detail).delete(synchronize_session=False) session.commit() session.close() return True except: session.close() return False except: engine = cf.get_db_engine1() Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) with Session() as session: try: session.query(detail_chat).filter(detail_chat.chat_id == id_chat_detail).delete(synchronize_session=False) session.commit() session.close() return True except: session.close() return False