
    Vi              	          d dl mZmZmZ d dlmZ d dlmZmZm	Z	 d dl
mZmZmZmZmZmZmZ  eddg          Ze                    d          d	efd
            Ze                    d           edd           edd          fdedee         dee         fd            Ze                    d          d	efd            Ze                    d          defd            Ze                    d          defd            Ze                    d          defd            Ze                    d          ded	e	fd            ZdS )    )	APIRouterHTTPExceptionQuery)Optional)SaveChatLogRequestCreateSessionRequestUpdateSessionTitleRequest)save_chat_logget_chat_logscreate_chat_sessionget_chat_sessionsget_session_messagesdelete_chat_sessionupdate_session_title ChatLog)prefixtagsz/save_chat_logrequestc                 .  K   	 t          | j        | j        | j        | j        | j        | j                   dddS # t          $ r#}t          dt          |                    d}~wt          $ r#}t          dt          |                    d}~ww xY w)	u   
    대화 로그 저장
    - chat_messages 테이블에 저장
    - category로 파트 구분 (condition, journal, curriculum, findgoal 등)
    - chat_session_id로 세션 연결 (optional)
    )
session_idlogsenderdailycategorychat_session_idokzChat log saved successfullystatusmessage  status_codedetailN  )r
   r   r   r   r   r   r   
ValueErrorr   str	Exception)r   es     #/app/app/routers/chat_log_router.pysave_chat_log_apir+      s      <)>-%#3	
 	
 	
 	
 +HIII < < <CFF;;;; < < <CFF;;;;<s!   7< 
BA$$B1BBz/chat_log/{session_id}Nu8   카테고리 필터 (예: condition, understanding, ppt))descriptionu   일차 필터r   r   r   c                    K   	 t          | ||          }d|iS # t          $ r#}t          dt          |                    d}~wt          $ r#}t          dt          |                    d}~ww xY w)u.   
    대화 로그 조회 (기존 호환)
    )r   r   r   logsr!   r"   Nr%   )r   r&   r   r'   r(   )r   r   r   r.   r)   s        r*   get_chat_log_apir/   ,   s      
<!
 
 

 ~ < < <CFF;;;; < < <CFF;;;;<s     
A2AA2A--A2z/chat_session/createc                    K   	 t          | j        | j        | j        | j                  }d|dS # t
          $ r#}t          dt          |                    d}~ww xY w)u=   
    새 채팅 세션 생성 → chat_session_id 반환
    )r   r   titler   r   )r   r   r%   r"   N)r   r   r   r1   r   r(   r   r'   )r   r   r)   s      r*   create_session_apir2   F   s}      
	<-)%--	
 
 
 ?CCC < < <CFF;;;;<s   +0 
AAAz/chat_sessions/{session_id}c                    K   	 t          |           }d|iS # t          $ r#}t          dt          |                    d}~ww xY w)uL   
    유저의 채팅 세션 목록 조회 (최신순, 사이드바용)
    sessionsr%   r"   N)r   r(   r   r'   )r   r4   r)   s      r*   get_sessions_apir5   W   s[      
<$Z00H%% < < <CFF;;;;<    
A?Az(/chat_session/{chat_session_id}/messagesr   c                    K   	 t          |           }d|iS # t          $ r#}t          dt          |                    d}~ww xY w)u>   
    특정 세션의 메시지 조회 (대화 복원용)
    messagesr%   r"   N)r   r(   r   r'   )r   r8   r)   s      r*   get_session_messages_apir9   c   s[      
<'88H%% < < <CFF;;;;<r6   z/chat_session/{chat_session_id}c                    K   	 t          |           }|r	dd|  ddS t          dd          # t          $ r  t          $ r#}t          dt          |                    d	}~ww xY w)
u*   
    세션 + 해당 메시지 삭제
    r   z	Session #z deletedr     z"Session not found or delete failedr"   r%   N)r   r   r(   r'   )r   successr)   s      r*   delete_session_apir=   o   s      
<%o66 	V"/T?/T/T/TUUU4XYYYY    < < <CFF;;;;<s   / / A&A!!A&z%/chat_session/{chat_session_id}/titlec                    K   	 t          | |j                  }|rdddS t          dd          # t          $ r  t          $ r#}t          dt	          |                    d}~ww xY w)	u   
    세션 제목 수정
    r   zTitle updatedr   r;   zSession not foundr"   r%   N)r   r1   r   r(   r'   )r   r   r<   r)   s       r*   update_session_title_apir?      s      
<&FF 	@"???4GHHHH    < < <CFF;;;;<s   1 1 A(A##A() fastapir   r   r   typingr   app.schemas.chat_log_schemar   r   r	   app.models.chat_log_moduler
   r   r   r   r   r   r   routerpostr+   getr'   intr/   r2   r5   r9   deleter=   putr?        r*   <module>rL      s   3 3 3 3 3 3 3 3 3 3       k k k k k k k k k k                  


 
 
 <%7 < < < <. $%% $eD6pqqq 5?CCC< <<sm< C=< < < &%<2 #$$<&: < < < %$<  )**<s < < < +*< 677<C < < < 87< 011<c < < < 21< 344<C <B[ < < < 54< < <rK   