diff --git a/app/repository/chat_tab_repository.py b/app/repository/chat_tab_repository.py index 472056f..0f40f3a 100644 --- a/app/repository/chat_tab_repository.py +++ b/app/repository/chat_tab_repository.py @@ -56,7 +56,7 @@ def updated_chat_tab(self, id: str, new_name: str | None) -> ChatTabInDB | None: # 데이터 업데이트 cursor.execute( - "UPDATE chat_tab SET name = ?, updated_at = datetime('now', 'localtime') WHERE id = ?", + "UPDATE chat_tab SET name = ?, updated_at = datetime('now') WHERE id = ?", (new_name, id), ) conn.commit() @@ -73,6 +73,20 @@ def updated_chat_tab(self, id: str, new_name: str | None) -> ChatTabInDB | None: if conn: conn.close() + def update_tab_timestamp(self, id: str) -> bool: + """지정된 ID의 채팅 탭의 updated_at 타임스탬프를 현재 시간으로 업데이트합니다.""" + db_path = get_db_path() + conn = None + try: + conn = sqlite3.connect(str(db_path), timeout=10) + cursor = conn.cursor() + cursor.execute("UPDATE chat_tab SET updated_at = datetime('now') WHERE id = ?", (id,)) + conn.commit() + return cursor.rowcount > 0 + finally: + if conn: + conn.close() + def delete_chat_tab(self, id: str) -> bool: """채팅 탭ID에 해당하는 ChatTab을 삭제하고, 성공 여부를 반환합니다.""" db_path = get_db_path() diff --git a/app/services/chat_message_service.py b/app/services/chat_message_service.py index 6df4db8..9f2015d 100644 --- a/app/services/chat_message_service.py +++ b/app/services/chat_message_service.py @@ -10,24 +10,24 @@ from app.core.status import CommonCode from app.core.utils import generate_prefixed_uuid from app.repository.chat_message_repository import ChatMessageRepository, chat_message_repository +from app.repository.chat_tab_repository import ChatTabRepository, chat_tab_repository from app.schemas.chat_message.base_model import validate_chat_tab_id_format from app.schemas.chat_message.db_model import ChatMessageInDB from app.schemas.chat_message.request_model import ChatMessagesReqeust from app.schemas.chat_message.response_model import ALLChatMessagesResponseByTab, ChatMessagesResponse chat_message_repository_dependency = Depends(lambda: chat_message_repository) - -# AI_SERVER_URL = os.getenv("ENV_AI_SERVER_URL") - -# if not AI_SERVER_URL: -# raise APIException(CommonCode.FAIL_AI_SERVER_CONNECTION) -# -# url: str = AI_SERVER_URL +chat_tab_repository_dependency = Depends(lambda: chat_tab_repository) class ChatMessageService: - def __init__(self, repository: ChatMessageRepository = chat_message_repository): + def __init__( + self, + repository: ChatMessageRepository = chat_message_repository, + chat_tab_repo: ChatTabRepository = chat_tab_repository, + ): self.repository = repository + self.chat_tab_repository = chat_tab_repo self._ai_server_url = None def _get_ai_server_url(self) -> str: @@ -71,6 +71,9 @@ async def create_chat_message(self, request: ChatMessagesReqeust) -> ChatMessage # 4. AI 서버 응답 저장 response = self._transform_ai_response_to_db_models(request, ai_response) + # 5. 채팅 탭의 updated_at 갱신 + self.chat_tab_repository.update_tab_timestamp(request.chat_tab_id) + # DB 모델을 API 응답 모델로 변환 response_data = ChatMessagesResponse.model_validate(response)