o
    s6h                     @   s   d dl mZ d dlmZmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZ d dlmZmZ dZdefd	d
ZdefddZdedefddZdefddZdedefddZdS )    )HTTPException)GeofenceRuleCreateGeofenceRuleUpdate)str_to_objectid)datetime)OptionalDictAny)	ASCENDING
DESCENDINGgeofence_rulesrulec                    s6   |   }t |d< |t |}t|j|d< |S )Ncreated_dateid)dictr   utcnowCOLLECTION_NAME
insert_onestrinserted_id)r   dbdataresult r   B/var/www/html/moveengine/app/v1/services/platform/geofencerules.pycreate_geofence_rule_service
   s   r   
account_idc                    s<   |t  dt| i}|stdddt|d |d< |S )N_idi  zGeofence rule not found)status_codedetailr   )r   find_oner   r   r   r   r   r   r   r   r   get_geofence_rule_service   s   r"   updatec                    sH   dd |j dd D }|t dt| id|i t| |I d H S )Nc                 S   s   i | ]\}}||qS r   r   ).0kvr   r   r   
<dictcomp>   s    z0update_geofence_rule_service.<locals>.<dictcomp>T)exclude_unsetr   z$set)r   itemsr   
update_oner   r"   )r   r#   r   update_dictr   r   r   update_geofence_rule_service   s   r,   c                    s,   t | |I d H }|t dt| i |S )Nr   )r"   r   
delete_oner   r!   r   r   r   delete_geofence_rule_service   s   r.   skiplimitc                    sZ   |t   | |}g }|D ]}t|d |d< || q|t  i }||dS )Nr   r   )total_countusers)r   findr/   r0   r   appendcount_documents)r/   r0   r   cursorrulesr   totalr   r   r   list_geofence_rules_service"   s   
r9   N)fastapir   $app.v1.models.platform.geofencerulesr   r   app.v1.libraries.objectr   r   typingr   r   r	   pymongor
   r   r   r   r   r"   r,   r.   intr9   r   r   r   r   <module>   s    