Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion app/repository/chat_tab_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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()
Expand Down
19 changes: 11 additions & 8 deletions app/services/chat_message_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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)

Expand Down