o
    98h                     @   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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datac                    s6   |   }t |d< |t |}t|j|d< |S )Ncreated_date_id)dictr   utcnowCOLLECTION_NAME
insert_onestrinserted_id)r   dbrecord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   find_oner
   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   "r,   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   r.   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)findr/   r0   r   appendcount_documents)	r   r/   r0   r   querycursormappingsdoctotalr   r   r   list_mappings_service%   s   
r;   N)fastapir   bsonr   r   typingr   r   r   ,app.v1.models.platform.geofence_rule_mappingr   r	   app.v1.libraries.objectr
   r   r   r   r"   r,   r.   intr;   r   r   r   r   <module>   s    