o
    Žh�jt
  ã                   @   s–   d dl mZmZmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZmZ edd	gd
�Zejdeejd�defdd„ƒZdS )é    )Ú	APIRouterÚstatusÚHTTPException)ÚMessageRequestÚMessageResponse)Úget_session_by_id)Úget_or_create_conversation)Úcreate_message)Úget_database)Úactive_sessionsÚbroadcast_to_agentsz/api/v1Úmessage)ÚprefixÚtagsz/message)Úresponse_modelÚstatus_codeÚpayloadc                 Ã   s  �t ƒ }t|| jƒI d H }|sttjd| j› d�d�‚| dd¡}t | ji ¡}| d¡}| d¡}|p5|}|dkrFttjd| j› d�d�‚t	|| j|ƒI d H }|d	 }	t
||	| jd
| jd�I d H  | d¡pk| d¡}
td| j||
| jdœƒI d H  |dkr†t| jdd�S t| jdd�S )Nz!Session not found for sessionId 'ú')r   ÚdetailÚsiteIdÚ r   ÚENDEDz)Cannot send message to an ended session 'ÚconversationIdÚuser)Úconversation_idÚ
session_idÚroleÚcontentÚassignedAgentIdÚuser_message)ÚtypeÚ	sessionIdr   r   r   ÚIN_CHATzMessage delivered to agent.)r!   Úreplyz-Please wait while we connect you to an agent.)r
   r   r!   r   r   ÚHTTP_404_NOT_FOUNDÚgetr   ÚHTTP_400_BAD_REQUESTr   r	   r   r   r   )r   ÚdbÚsessionÚsite_idÚin_memory_sessionÚin_memory_statusÚ	db_statusÚcurrent_statusÚconversationr   Úassigned_agent© r0   ú4/web/html/dev/chatbot/backend/app/routers/message.pyÚsend_message   sR   €þ

þûû	þr2   N)Úfastapir   r   r   Úapp.models.messager   r   Ú#app.repositories.session_repositoryr   Ú(app.repositories.conversation_repositoryr   Ú#app.repositories.message_repositoryr	   Úapp.databaser
   Úapp.services.presencer   r   ÚrouterÚpostÚHTTP_200_OKr2   r0   r0   r0   r1   Ú<module>   s    