
    hE                        S SK r S SK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JrJrJr  S SKJr  S S	KJrJr  S
rSr " S S\R0                  5      rS\S\4S jrS\S\S\S\\   S\\   S\\   S\\   S\\   S\\   S\4S jrS\S\4S jrS\S\S\4S jr S\S\4S jr!S\S\\\\4      4S jr"S#S\S \S!\S\\\\4      4S" jjr#g)$    N)datetime)ObjectId)	InvalidId)DuplicateKeyError)HTTPExceptionQuery)OptionalListDictAny)get_next_sequence_value_int)	ASCENDING
DESCENDINGfleetsvehiclesc                   (   ^  \ rS rSrU 4S jrSrU =r$ )CustomJSONEncoder   c                    > [        U[        5      (       a  UR                  5       $ [        U[        5      (       a  [	        U5      $ [
        TU ]  U5      $ )N)
isinstancer   	isoformatr   strsuperdefault)selfobj	__class__s     MC:\Suresh\moveshuttle\MDcreated\moveengine\app\v1\services\platform\fleets.pyr   CustomJSONEncoder.default   sA    c8$$==?"c8$$s8Ows##     )__name__
__module____qualname____firstlineno__r   __static_attributes____classcell__)r   s   @r   r   r      s    $ $r    r   
fleet_datareturnc                 L   U[            nU[           n [        R                  " 5       nX@S'   X@S'   [	        SU5      U S'   UR                  U 5      n[        UR                  5      nX`S'   X`S'   S H7  nXp;   d  M
  [        X   [        5      (       d  M#  X   R                  5       X'   M9     SU ;   a  U S    H  nSU;  a;  UR                  S[        US	   5      05      n	U	(       a  U	R                  SS
5      US'   SU;  d  ML  UR                  S[        US	   5      05      n	U	(       d  Mt  U	R                  SS
5      U	R                  SS
5      U	R                  SS
5      S.US'   M     SU 0$ ! [         a    [        SSS9e[         a  n
[        SS[        U
5       3S9eS n
A
ff = f)Ncreated_dateupdated_date	fleets_id_idfleet_idr+   r,   r   vehicle_typevehicle_model_id model_detailsmanufacturer_name	fuel_typer5   r1   r6   r(     zFleet creation failedstatus_codedetail  zServer error: )COLLECTION_NAMEVEHICLE_COLLECTIONr   utcnowr   
insert_oner   inserted_idr   r   find_oner   getr   r   	Exception)r(   dbfleets_collectionvehicles_collectioncurrent_timeresultr/   fieldvehiclemodeles              r   create_fleet_servicerN      s   ?+/0>O  (%1>"%1>""=k2"N
; #--j9v))*$5!): 6E"z*2CX'N'N$.$5$?$?$A
! 6
 #%j1!0/88%'RdJeAf9ghE27))NB2O/ #'1/88%'RdJeAf9ghEu16;NPR1S,1IInb,I).;)C40 2& *
 	
  M4KLL OnSVH4MNNOs2   A"E+ :E+ A+E+ $E+ *A E+ +F#FF#
account_idskiplimitqstatuscreated_date_fromcreated_date_tosort_by
sort_orderc
           	         U	[            n
U	[           n0 nU S:w  a  XS'   U(       a  USS.nSU0SU0SU0SU0/US	'   U(       a  XLS
'   U(       d  U(       aH  0 nU(       a  [        R                  " US5      US'   U(       a  [        R                  " US5      US'   XS'   SSSSSSS
SS.nUR	                  US5      nUS:X  a  [
        O[        nU
R                  U5      R                  UU5      R                  U5      R                  U5      n[        U5      n/ nU H  n [        US   5      US'   [        US   5      US'   UR                  SS5        UR                  SS5        S H;  nUU;   d  M  [        UU   [        5      (       d  M%  UU   R                  5       UU'   M=     UR!                  U5        M     U
R'                  U5      nUUS.$ ! ["         a"  n[%        S[        U5       35         S nAM  S nAff = f)NallrO   iz$regexz$options
fleet_namedescriptionregistration_number
vin_numberz$orrS   z%Y-%m-%dz$gtez$lter+   r1   coloryearvendor_name)r\   r1   r`   ra   r^   rb   rS   r+   ascr.   r/   r3   user_idr0   zError processing fleet: )total_countr   )r=   r>   r   strptimerC   r   r   findsortrP   rQ   listr   
setdefaultr   r   appendrD   printcount_documents)rO   rP   rQ   rR   rS   rT   rU   rV   rW   rE   rF   vehicle_models_collectionqueryregex_querydate_filtersort_fields
sort_fieldsort_directioncursorr   formatted_fleetsfleetrJ   rM   re   s                            r   get_fleets_servicerx   `   s$    ?+ "#5 6EU(l!"4;'K("K0;'	
e  h O"*"3"34Ez"RK"*"3"3OZ"PK +n #&4$&	K .9J","5Y:N##E*//
NKPPQUV\\]bcF&\F	 #E%L 1E*uU|,E%L\2.Y+9E>jux&H&H#(<#9#9#;E%L : ##E*  $33E:K&2BCC  	,SVH56	s%   AG1G+G
G<G77G<r/   c           
         U[            nU[           n [        U 5      nUR                  SU05      nU(       d
  [	        SSS9e [        US   5      US'   [        US   5      US'   UR                  SS	5        UR                  S
S	5        UR                  S/ 5        S H7  nXe;   d  M
  [        XV   [        5      (       d  M#  XV   R                  5       XV'   M9     SU;   a.  US   (       a$  [        R                  " SS5      nU SUS    3US'   UR                  S/ 5       H  nSU;  a  M   [        US   5      US'   UR                  S[        US   5      0SSSS.5      n	U	(       aX  U	R                  SS	5      U	R                  SS	5      U	R                  SS	5      S.US'   SU;  a  U	R                  SS	5      US'   M  M  SSSS.US'   M     U$ ! [         a    [	        SSS9ef = f! [         a.  n
[        SU  S[        U
5       35        SSSS.US'    S n
A
M  S n
A
ff = f! [         a)  n
[        SU  S[        U
5       35        [	        SSS9eS n
A
ff = f)Nr8   Invalid fleet IDr9   r.     Fleet not foundr/   rO   r3   rd   r   r0   vehicle_imageBASE_URLzhttp://localhost:8003/r2      r7   r5   r1   r6   r4   Unknownz"Error processing vehicle in fleet z: ErrorzError processing fleet r<   zError processing fleet data)r=   r>   r   r   r   rB   r   rj   r   r   r   osgetenvrC   rD   rl   )r/   rE   rF   rG   fleet_object_idrw   rJ   base_urlrK   rL   rM   s              r   read_fleet_servicer      s   ?+/0H"8, &&'?@E4EFF;Se-j5<(e 	r*B'R( 6E~*U\8"D"D$|557 6
 e#o(>yy-DEH(0z53I2J%KE/" yyR0G!0.1':L2M.N*++44HW-?%@AB*+QQO
 -2YY7JB-O(-		."(E%*YY{B%?0GO,
 &W427))NB2O/ 5 .7(1%.0GO,+ 1N LI  H4FGGHp  :8*Bs1vhOP)0$+!(,(  S'zCF8<=4QRRSsh   G A H! (H! A)H! +BG&;H! ?	G&H! G#&
H0#HH! HH! !
I+$IIc                    U[            nU[           n [        U 5      nUR                  SU05      nU(       d
  [	        SSS9eUR                  5        VVs0 s H  u  pxUc  M
  Xx_M     n	nn[        R                  " 5       U	S'   SU	;   aA  U	S    H8  n
UR                  S[        U
S	   5      05      (       a  M)  [	        SS
U
S	    S3S9e   UR                  SU0SU	05      nUR                  S:X  a
  [	        SSS9eUR                  SU05      n[        US   5      US'   [        US   5      US'   UR                  SS5        UR                  SS5        UR                  S/ 5        S H7  nX;   d  M
  [        X   [        5      (       d  M#  X   R                  5       X'   M9     U$ ! [         a    [	        SSS9ef = fs  snnf )Nr8   rz   r9   r.   r{   r|   r,   r   r2   zVehicle model z
 not foundz$setr   r/   rO   r3   rd   r0   )r=   r>   r   r   r   rB   itemsr   r?   
update_onematched_countr   rj   r   r   )r/   r(   rE   rF   rG   r   existing_fleetkvupdate_datarK   rI   updated_fleetrJ   s                 r   update_fleet_servicer   >  s   ?+/0H"8, '//0HIN4EFF$.$4$4$6H$6DA!414$6KH"*//"3K [ ":.G&//I[A\8]0^__# #+G4F,G+H
S  / ))	 	F
 q 4EFF%../GHM !$M%$8 9M*}U34M% \2.Y+Z, 2!j1Ex&P&P#0#7#A#A#CM  2 W  H4FGGH Is   F% 	F=#F=%F:c                    U[            nU[           n [        U 5      nUR                  SU05      nU(       d
  [	        SSS9eUR                  S5      (       a0  US    H'  nUR                  S[        US   5      0S	S
U 005        M)     UR                  SU05        [        US   5      US'   [        US   5      US'   UR                  SS5        UR                  SS5        UR                  S/ 5        S H7  nXu;   d  M
  [        XW   [        5      (       d  M#  XW   R                  5       XW'   M9     U$ ! [         a    [	        SSS9ef = f)Nr8   rz   r9   r.   r{   r|   r   r2   z$pull	fleet_idsr/   rO   r3   rd   r0   )r=   r>   r   r   r   rB   rC   r   
delete_oner   rj   r   r   r   )r/   rE   rF   rG   r   rw   rK   rJ   s           r   delete_fleet_servicer   q  sg   ?+/0H"8, &&'?@E4EFF yyZ(G**);!<=>;12 )   %!9: E%L)E*uU|$E%L 
\2&	Y#	Z$ 2>jx@@ <113EL 2 LA  H4FGGHs   D3 3Ec                    U[            nU[           n [        U 5      nUR                  SU05      nU(       d
  [	        SSS9e/ nUR                  S/ 5       H  nUR                  S[        US   5      05      nU(       d  M+  0 UES	UR                  S
S5      UR                  SS5      UR                  SS5      UR                  SS5      UR                  SS5      S.0En	UR                  U	5        M     U$ ! [         a    [	        SSS9ef = f)Nr8   rz   r9   r.   r{   r|   r   r2   r4   r5   r3   r1   r6   is_autonomousFcan_fly)r5   r1   r6   r   r   )r=   r>   r   r   r   rB   rC   rk   )
r/   rE   rF   rG   r   rw   r   rK   rL   vehicle_datas
             r   get_fleet_vehicles_servicer     s)   ?+/0H"8, &&'?@E4EFFH99Z,#,,eXgFX>Y5Z-[\5		).3F)K$)IInb$A!&;!;%*YY%F$yyE:"	L OOL) -  O1  H4FGGHs   C7 7Dro   rY   c                    U [            nSU0nUS:w  a  SS0US'   U(       a  [        R                  U5      SS.US'   UR                  USS	05      nU Vs/ s H$  n[	        US
   5      UR                  SS5      S.PM&     sn$ s  snf )NrO   rY   z$neTis_fleet_assignedrZ   r[   r\   r   r.   r3   )idr\   )r=   reescaperg   r   rC   )rE   rO   ro   rY   rF   filtersr   fs           r   get_fleet_dropdown_listr     s    ?+ Z(G
e|(-t}#$+-99U+; M##GlA->?FRXYRXQ3qx=lB0GHRXYYYs   +B)r3   r3   )$r   jsonr   bsonr   bson.errorsr   pymongo.errorsr   fastapir   r   typingr	   r
   r   r   app.v1.services.sequencer   pymongor   r   r=   r>   JSONEncoderr   dictrN   r   intrx   r   r   r   r   r   r!   r    r   <module>r      s   	    ! , ( , , @ ) $(( $BOT BO$ BONJDJD
JD JD }	JD
 SMJD  }JD c]JD c]JD JD 
JDdJ JT JX13 1D 1 1f&3 &t &P T$sCx.5I @ZC Z Zs ZTXY]^acf^fYgTh Zr    