
    ':j                     ^    d dl 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
  G d d	e      Zy)
    N)AsyncWebsocketConsumer)database_sync_to_async)Users)send_notification   )Chatc                   D    e Zd Zd Zd Zd Zd Zed        Zed        Z	y)ChatConsumerc           	        K   | j                   d   d   d   | _        | j                   d   d   d   | _        | j                   d   d   d   | _        | j                   d   d   d   | _        dt        t        | j                        t        | j                               dt        t        | j                        t        | j                               d| j                   d| j                   | _        | j                  j                  | j                  | j                         d {    | j                          d {    t        d	| j                         y 7 37 w)
N	url_routekwargssenderreceiverwork_idwork_sub_category_idchat__z
CONNECTED:)scope	sender_idreceiver_idr   r   minintmax	room_namechannel_layer	group_addchannel_nameacceptprint)selfs    ./var/www/html/HOMYLIO_ADMIN/chats/consumers.pyconnectzChatConsumer.connect   s9    K0:8D::k28<ZHzz+.x8C$(JJ{$;H$EF\$]! 3t~~&D,<,<(=>?q3t~~&D,<,<(=>?q||nA(()	+ 	   **NN
 	
 	

 kkmlDNN+	

 	s$   D#E%E&E=E>EEc                    K   | j                   j                  | j                  | j                         d {    t	        d| j                         y 7 w)NzDISCONNECTED:)r   group_discardr   r   r   )r    
close_codes     r!   
disconnectzChatConsumer.disconnect&   sI       ..NN
 	
 	

 	ot~~.	
s   4AAAc                   K   	 t        j                  |      }| j                  |       d {   }| j                  |       d {    |j                  |j
                  |j                  |j                  |j                  t        |j                        d}| j                  j                  | j                  d|d       d {    y 7 7 7 	# t        $ r}t        dt        |             Y d }~y d }~ww xY ww)N)idr   r   messagemessage_type
created_atchat_message)typer)   zReceive Error:)jsonloads	save_chatsend_chat_notificationr(   r   r   r)   r*   strr+   r   
group_sendr   	Exceptionr   )r    	text_datadatachatresponsees         r!   receivezChatConsumer.receive/   s     	,::i(D--D--d333 gg.. ,,<< $ 1 1!$//2H $$//*'   .3  	,"CF++	,sc   C<)C CC CA>C CC 
C<C C C 	C9C4/C<4C99C<c                 p   K   | j                  t        j                  |d                d {    y 7 w)Nr)   )r5   )sendr.   dumps)r    events     r!   r,   zChatConsumer.chat_messageL   s2     iijjy!12  
 	
 	
s   ,646c                     t         j                  j                  | j                  | j                  | j
                  | j                  |d   |j                  dd      d      S )Nr)   r*   r   )r   r   r   r   r)   r*   status)r   objectscreater   r   r   r   get)r    r6   s     r!   r0   zChatConsumer.save_chatR   sX     ||""nn((LL!%!:!:O.!4 # 
 	
    c                 r   t        d       	 t        j                  j                  |j                        }t        j                  j                  |j
                        }t        |j                         |j                  sy t        |j                  |j                  |j                  dt        |j                        t        |j                        t        |j                        t        |j                        d      }t        |       y # t        $ r}t        dt        |             Y d }~y d }~ww xY w)Nasdadadadad)r(   r7   )r-   r   r   r   r   )titler)   tokenr6   zNotification Error:)r   r   rA   rC   r   r   	fcm_tokenr   namer)   r2   r(   r   r   r4   )r    r7   r   r   r6   r9   s         r!   r1   z#ChatConsumer.send_chat_notification`   s    m	1]]&&$..&9F}}((D,<,<(=H($$%%%$kk(("!$VYY#&x{{#3"4<<0,/0I0I,J	D $K 	1'Q00	1s   A5D B
D 	D6D11D6N)
__name__
__module____qualname__r"   r&   r:   r,   r   r0   r1    rD   r!   r
   r
      s>    ,0/,:
 

 

 1 1rD   r
   )r.   channels.generic.websocketr   channels.dbr   accounts.modelsr   utils.firebaser   modelsr   r
   rN   rD   r!   <module>rT      s&     = . ! , n1) n1rD   