
    hd                         d dl mZmZmZ d dlZd dlZ ej                  e      Z e       Z	 G d d      Z
 e
       Ze	j                  d      dededefd	       Zy)
    )	APIRouter	WebSocketWebSocketDisconnectNc                   F    e Zd Zd ZdefdZdefdZdedefdZdefdZ	y)	SimpleConnectionManagerc                     g | _         y N)active_connections)selfs    O/var/www/html/hubwallet-dev/src/marketing/apps/hwGpt/simple_websocket_router.py__init__z SimpleConnectionManager.__init__   s
    "$    	websocketc                    K   |j                          d {    | j                  j                  |       t        j	                  dt        | j                                y 7 Kw)Nz(WebSocket connected. Total connections: )acceptr
   appendloggerinfolenr   r   s     r   connectzSimpleConnectionManager.connect   sQ        &&y1>s4CZCZ?[>\]^ 	!s   A$A"AA$c                     || j                   v r| j                   j                  |       t        j                  dt	        | j                                 y )Nz+WebSocket disconnected. Total connections: )r
   remover   r   r   r   s     r   
disconnectz"SimpleConnectionManager.disconnect   sD    ///##**95A#dF]F]B^A_`ar   messagec                 B   K   |j                  |       d {    y 7 wr	   )	send_text)r   r   r   s      r   send_personal_messagez-SimpleConnectionManager.send_personal_message   s     !!'***s   c                    K   | j                   D ]  }	 |j                  |       d {     y 7 #  | j                   j                  |       Y AxY wwr	   )r
   r   r   )r   r   
connections      r   	broadcastz!SimpleConnectionManager.broadcast   sQ     11 	;J; **7333	;3;''..z:s%   A1/1A1AAN)
__name__
__module____qualname__r   r   r   r   strr   r!    r   r   r   r   
   sB    %_y _
bI b
+3 +9 +;s ;r   r   z/chat/{user_id}/{store_id}r   user_idstore_idc                 j  K   t         j                  |        d{    	 dd||d}| j                  t        j                  |             d{    	 	 | j                          d{   }t        j                  |      }t        j                  d|        dd|j                  dd	       ||d}| j                  t        j                  |             d{    7 7 7 |7 # t        j                  $ r3 | j                  t        j                  d
dd             d{  7   Y Nw xY w# t        $ r- t         j                  |        t        j                  d       Y yt        $ r@}t        j                  dt        |              t         j                  |        Y d}~yd}~ww xY ww)z3Simple WebSocket endpoint for testing connectivity.Nconnection_establishedzConnected to hwGpt simple chat)typer   r'   r(   zReceived message: echozEcho: r   z
No messageerrorzInvalid JSON format)r+   r   zWebSocket disconnectedzWebSocket error: )managerr   r   jsondumpsreceive_textloadsr   r   getJSONDecodeErrorr   r   	Exceptionr-   r%   )r   r'   r(   welcome_messagedatamessage_dataresponsees           r   simple_websocket_chatr;   $   s     //)
$$$(& -7 	
 !!$**_"=>>> &3355#zz$/0?@ #!'(8(8L(Q'RS& (	  ))$**X*>???!  % 	? 6 @'' ))$**#46 +     .9%,- &(Q129%%&s   F3C"F3.D3 C$D3 C* )C&*A2C* C(C* !D3 "F3$D3 &C* (C* *=D0'D*(D0-D3 /D00D3 33F0&F3(F006F+&F3+F00F3)fastapir   r   r   r/   logging	getLoggerr"   r   routerr   r.   r   r%   r;   r&   r   r   <module>r@      sq    = =  			8	$	; ;0 "
#./,&9 ,&s ,&c ,& 0,&r   