
    ?h
              	           S SK Jr  S SKJr  S SKJr  S SKJrJrJr  S SK	J
r
  S SKJrJr  S SKJrJr  SrS	\4S
 jrS\4S jrS\S\4S jrS\4S jrS\S\S\\   S\\   4S jrg)    )HTTPException)datetime)ObjectId)OptionalDictAny)str_to_objectid)GeofenceCreateGeofenceUpdate)	ASCENDING
DESCENDING	geofencesgeofencec                 P  #    U R                  5       n[        R                  " 5       US'   US   S:X  aD  UR                  S5      (       a.  US   nUS   US   :w  a  UR	                  US   5        SU/S.US	'   US
   R                  U5      n[        UR                  5      US'   U$ 7f)Ncreated_dateshapepolygoncoordinatesr   Polygon)typer   locr   id)dictr   utcnowgetappend
insert_onestrinserted_id)r   dbdatacoordsresults        PC:\Suresh\moveshuttle\MDcreated\moveengine\app\v1\services\platform\geofences.pycreate_geofence_servicer&      s     ==?D#??,D G}	!dhh}&=&=m$!9r
"MM&)$"8
U
 _''-FV''(DJKs   B$B&
account_idc                    #    U[            R                  S[        U 5      05      nU(       d
  [        SSS9e[	        US   5      US'   U$ 7f)N_idi  zGeofence not found)status_codedetailr   )COLLECTION_NAMEfind_oner	   r   r   r'   r!   r   s      r%   get_geofence_servicer/   %   sL     /"++UOJ4O,PQH4HII%)HTNOs   AA
updatec                   #    UR                  SS9R                  5        VVs0 s H  u  p4X4_M	     nnnU[           R                  S[	        U 5      0SU05      I S h  vN   [        X5      I S h  vN $ s  snnf  N N7f)NT)exclude_unsetr)   z$set)r   itemsr,   
update_oner	   r/   )r'   r0   r!   kvupdate_dicts         r%   update_geofence_servicer8   ,   sy     $*KKdK$C$I$I$KL$KDA14$KKL
_

(
(%1L)MPVXcOd
eee%j555 Me5s-   !A?A5,A?A;A?0A=1A?=A?c                    #    [        X5      I S h  vN nU[           R                  S[        U 5      05      I S h  vN   U$  N1 N7f)Nr)   )r/   r,   
delete_oner	   r.   s      r%   delete_geofence_servicer;   1   sB     )*99H
_

(
(%1L)M
NNNO :Ns   AA*AAAAskiplimitqr   c                 J  #    0 nU(       a  USS.nSU0/US'   U(       a  X5S'   U[            R                  U5      R                  U 5      R                  U5      n/ nU H%  n	[	        U	S   5      U	S'   UR                  U	5        M'     U[            R                  U5      n
XS.$ 7f)	Ni)z$regexz$optionsnamez$orr   r)   r   )total_countusers)r,   findr<   r=   r   r   count_documents)r<   r=   r>   r   r!   filter_queryregex_querycursorr   itemtotals              r%   list_geofences_servicerK   6   s     L!"4[!
U  %W %%l388>DDUKFIe%T
  //=E 55s   B!B#N)fastapir   r   bsonr   typingr   r   r   app.v1.libraries.objectr	    app.v1.models.platform.geofencesr
   r   pymongor   r   r,   r&   r   r/   r8   r;   intrK        r%   <module>rU      s    !   & & 3 K )N &3 6c 6> 6
c 
6s 63 68C= 6QYZ]Q^ 6rT   