
    4?i                     F   S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJrJr  S S	KJr  S S
KJrJrJr  S SKJrJrJr  \" SS/S9r/ r\R;                  S\S9\" \5      4S\4S jj5       r\R;                  S\\   S9\" \5      4S\ S\4S jj5       r!g)    )List)select)get_db)Client)Visitor)Message)AsyncSession)AgentAssignmentHistoryAgent)visitor_manager)	APIRouterDependsHTTPException)VisitorOnlineListOnlineVisitor
MessageOutz
/dashboard	Dashboard)prefixtagsz/visitors/online)response_modeldbc                   #    [        S5        [        [        R                  R	                  5       5      nU(       d  S/ 0$ U R                  [        [        [        5      R                  [        [        R                  [        R                  :H  5      R                  [        R                  R                  U5      5      5      I S h  vN nUR                  5       n[        SU5        U(       d  S/ 0$ U VVs/ s H  u  pEUR                  PM     nnnU R                  [        [         5      R                  [         R                  R                  U5      [         R"                  R%                  S 5      5      5      I S h  vN nUR'                  5       R                  5       nU V	s0 s H  oR                  U	_M     n
n	[        SU
5        / nU GHo  u  pL[        SUR(                  5        [        SUR*                  5        [        SU5        U
R-                  UR                  5      n	U
R-                  UR                  5      n	S nS nU	(       a  U	R.                  nU R                  [        [0        5      R                  [0        R                  U	R.                  :H  5      5      I S h  vN nUR3                  5       nU(       a  UR(                  OS nUR5                  [7        UR                  UR(                  UR*                  UR8                  UR:                  UR<                  U(       a  UR>                  OS UUS9	5        GMr     SU0$  GN~s  snnf  GNs  sn	f  N7f)	Nz"-------/visitors/online-----------visitorsrowsassignment_mapzv.namezv.cityc)	visitor_uidnamecityregioncountry
ip_addressclient_nameassigned_agent_idassigned_agent_name) printlistr   active_connectionskeysexecuter   r   r   join	client_ididwhere
visitor_idin_allr
   ended_atis_scalarsr   r   getagent_idr   scalar_one_or_noneappendr   r    r!   r"   r#   )r   visitor_uidsresultr   v_visitor_ids
ass_resultassignmentsar   visitors_outr   
agent_namer$   agent_result
agent_datas                    7/var/www/html/livechat/backend/app/routers/dashboard.pyget_online_visitorsrF      s     

./ ::??ABLB ::w	fg''6994	5	w!!%%l3	4 F
 ::<D	&B '++dFQ144dK+ zz%&,,"--11+>"++//5	
 J $$&**,K/:;{!llAo{N;	
>* )+Lhqvvhqvvc!qtt$qtt$
  !

 "$u##EHH

$:;" L &88:J,6DJLLVVVVxx		<<-.AMMD"3$.
	
/ J %%C , <0sQ   CMM0M6MA.M<M=&M#M9C(M!M"B"MMMz/chat/history/{visitor_uid}r   c           	        #    UR                  [        [        5      R                  [        R                  U :H  5      5      I S h  vN nUR                  5       nU(       d
  [        SSS9eUR                  [        [        5      R                  [        R                  UR                  :H  5      R                  [        R                  R                  5       5      5      I S h  vN nUR                  5       R                  5       nU Vs/ s H,  n[        UR                  UR                   UR                  S9PM.     sn$  N N^s  snf 7f)Ni  zVisitor not found)status_codedetail)sendertext
created_at)r*   r   r   r.   r/   r7   r   r   r-   order_byrL   ascr4   r1   r   rJ   rK   )r   r   r:   visitor
msg_resultmessagesms          rE   get_chat_historyrS   d   s      ::fWo33G4F4F+4UVWWF'')G4GHHzzwg00GJJ>?HHI[I[I_I_Iab J !!#'')H A 	188!&&Q\\K  X
s7   AED=BE D?!&E3E:E?EEN)"typingr   
sqlalchemyr   app.core.databaser   app.models.clientr   app.models.visitorr   app.models.messager   sqlalchemy.ext.asyncior	   app.models.agentr
   r   app.ws.connection_managerr   fastapir   r   r   app.schemas.chatr   r   r   routeronline_visitorsr5   rF   r'   strrS        rE   <module>rd      s      $ $ & & / : 5 5 5 I I 
,k]	; /@A18 K&, K& BK&\ )$z:JK@G    Lrc   