
    ־h^                         % S SK r S SKrS SKJrJr  S SKJr  S SKJrJr  S SK	J
r
  S SKJr  Sq\\S'   S rS	 rS
\4S jrS
\4S jrS
\4S jrS
\4S jrg)    N)	WebSocketWebSocketDisconnect)AIOKafkaProducer)datetime	timedelta)connected_clients)databaseproducerc                  Z   #    [        SS9q[        R                  5       I S h  vN   g  N7f)Nzlocalhost:9092)bootstrap_servers)r   r
   start     JC:\Suresh\moveshuttle\MDcreated\moveengine\app\v1\sockets\tracking_data.pystart_kafka_producerr      s      2BCH
..
s   !+)+c                  `   #    [         (       a  [         R                  5       I S h  vN   g g  N7f)N)r
   stopr   r   r   stop_kafka_producerr      s!     xmmo s   #.,.	websocketc                   #    U R                  5       I S h  vN     U R                  5       I S h  vN n[        R                  " U5      n[        R
                  " 5       R                  5       US'   [        (       aA  [        R                  S[        R                  " U5      R                  S5      5      I S h  vN   U R                  S5      I S h  vN   M   N N N# N! [         a     g f = f7f)Nreceived_atvehicle_trackingzutf-8zMessage queued successfully.)acceptreceive_textjsonloadsr   utcnow	isoformatr
   senddumpsencode	send_textr   )r   messagedatas      r   websocket_tracking_datar%      s     



	%2244G::g&D"*//"3"="="?Dxmm$6

48H8O8OPW8XYYY%%&DEEE   5 ZE sg   C0CC0C  CBC  8C9C  CC  C0C  C  C   
C-*C0,C--C0c                 b  #    U R                  5       I S h  vN   [        R                  " U 5        [        S[	        [        5      5          [
        R                  " S5      I S h  vN   M    NU N! [         a2    [        R                  " U 5        [        S[	        [        5      5         g f = f7f)Nu   ✅ Client connected. Total:   u#   ❌ Client disconnected. Remaining:)	r   r   addprintlenasynciosleepr   remove)r   s    r   websocket_realtime_updatesr.   "   s     



)$	
(#.?*@AM--"""   # M  +3S9J5KLMsE   B/A,3B/A0 %A.&A0 ,B/.A0 09B,)B/+B,,B/c                   #    U R                  5       I S h  vN    U R                  5       I S h  vN n[        R                  " U5      nUR	                  S5      nUR	                  S5      nU(       a  U(       d2  U R                  S5      I S h  vN   U R                  5       I S h  vN   g  [        R                  " US5      nU[        SS9-   n[        R                  " 5       n[        U5      nUS   n	U	R                  UUUS	.S
.SSSSS.5      n
[        SU
5        U
 Hs  n[        [        R                   " U["        S95        U R                  [        R                   " U["        S95      I S h  vN   [$        R&                  " S5      I S h  vN   Mu     U R                  S5      I S h  vN   U R                  5       I S h  vN    [        U5        g  GN GN GNM GN8! [         a6    U R                  S5      I S h  vN    U R                  5       I S h  vN     g f = f N N N| Nf! [(         a     g f = f! [*         a    [        S5         g [,         a`  n[        S[#        U5       35        U R                  S[#        U5       35      I S h  vN    U R                  5       I S h  vN     S nAg S nAff = f7f)N	device_iddatezMissing device_id or date.z%Y-%m-%d %H:%M:%Sr'   )hoursz,Invalid date format. Use YYYY-MM-DD HH:MM:SStracking_logs)z$gtez$lt)r0   r   )locationspeedheadingr   zQuery returned:)defaultg?donezClient disconnected.zError: )r   r   r   r   getr"   closer   strptimer   
ValueErrorr	   get_mongo_dbnextfindr)   r    strr+   r,   StopIterationr   	Exception)r   query
query_datar0   datetime_str
start_dateend_date	mongo_genmongo
collectioncursordoces                r   websocket_historical_routerN   .   s`    



9 ,,..ZZ&
NN;/	!~~f-%%&BCCC//###	!**<9LMJ!IA$66H ))+	Y?+
 """
 A!AFH 	( C$**S#./%%djjc&BCCC--$$$ 
 !!&)))oo	Oc . D#  	%%&TUUU//###	4 D$)  		  &$%  Ax !!!GCF8"4555oo s@  J?GJ?H< GAH< GH< &G'H< +J?-#G! B H< 0H$1H< H&H< +H(,H< H*H< 	H, J?H< H< H< !H!?H H!HH!H< J? H!!H< &H< (H< *H< ,
H96H< 7J?8H99H< <J<J?	J<7J7JJ7,J/-J72J?7J<<J?c           	      R  #    U R                  5       I S h  vN    U R                  5       I S h  vN n[        R                  " U5      nUR	                  S5      nU(       d2  U R                  S5      I S h  vN   U R                  5       I S h  vN   g U [        U'   [        SU S[        [        5       35         [        R                  " S5      I S h  vN   M    N N Ni NS N! [         a4    W[        ;   a'  [        U	 [        SU S[        [        5       35         g  g f = f7f)Nworkforce_idzMissing workforce_id.u   ✅ Workforce z connected. Total clients: r'   u   ❌ Workforce z disconnected. Remaining: )r   r   r   r   r9   r"   r:   r   r)   r*   r+   r,   r   )r   msgr$   rP   s       r   websocket_workforce_schedulesrR   k   s    



e**,,zz#xx/%%&=>>>//###*3,'|n,GL]H^G_`a--"""   -
 ?# # e,,!,/N<.0J3O`KaJbcd -es   D'CD'C& CAC& 6C 7C& C"C& D'AC& C$C& D'C&  C& "C& $C& &9D$D'#D$$D')r+   r   fastapir   r   aiokafkar   r   r   app.utils.connectionsr   app.dbr	   r
   __annotations__r   r   r%   r.   rN   rR   r   r   r   <module>rX      sd      2 % ' 3 !
 !
Y 
M	 
M; 	 ; ze9 er   