o
    -0i:
                     @   s   d dl 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 dlmZ d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defddZdS )    )HTTPException)ObjectId)datetime)OptionalDictAny)GeofenceRuleMappingCreateGeofenceRuleMappingUpdate)str_to_objectidgeofence_rule_mappinggeofence_rulesdatac                    s   |   }t |d< |drB|t dt|d i}|rB|d|d< |d|d< |d|d< |d|d< |d|d< |t |}t	|j
|d< |S )	Ncreated_dategeofence_rule_id_idtrigger_eventsactionaction_messagealert_message
conditions)dictr   utcnowgetRULES_COLLECTIONfind_oner   COLLECTION_NAME
insert_onestrinserted_id)r   dbrecordruleresult r#   J/var/www/html/moveengine/app/v1/services/platform/geofence_rule_mapping.pycreate_mapping_service   s   
r%   
account_idc                    s<   |t  dt| i}|stdddt|d |d< |S )Nr   i  zMapping not found)status_codedetailid)r   r   r
   r   r   r&   r   mappingr#   r#   r$   get_mapping_service"   s   r,   updatec                    sN   dd |j dd D }|t dt| id|iI d H  t| |I d H S )Nc                 S   s   i | ]\}}||qS r#   r#   ).0kvr#   r#   r$   
<dictcomp>*   s    z*update_mapping_service.<locals>.<dictcomp>T)exclude_unsetr   z$set)r   itemsr   
update_oner
   r,   )r&   r-   r   update_dictr#   r#   r$   update_mapping_service)   s   "r6   c                    s2   t | |I d H }|t dt| iI d H  |S )Nr   )r,   r   
delete_oner
   r*   r#   r#   r$   delete_mapping_service.   s   r8   skiplimitc           	      C   sr   d| i}|d  |||}g }|D ]}t|d |d< t|d |d< || q|d |}||dS )Nr&   r   r   r)   )total_countusers)findr9   r:   r   appendcount_documents)	r&   r9   r:   r   querycursormappingsdoctotalr#   r#   r$   list_mappings_service3   s   
rE   N)fastapir   bsonr   r   typingr   r   r   ,app.v1.models.platform.geofence_rule_mappingr   r	   app.v1.libraries.objectr
   r   r   r%   r   r,   r6   r8   intrE   r#   r#   r#   r$   <module>   s    