o
    r.h                     @   s2  d dl mZmZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZmZmZmZ d dlmZmZmZmZmZmZmZ e Zejde	deejfd	e
fd
dZejdedd ddddddeejfdededee dee dee dee dee fddZejdedgdeejfdefddZejdedd ddddddeejfdededee dee dee dee dee fddZ ejd e	deejfd!efd"d#Z!ejd e	deejfd!ed	e
fd$d%Z"ej#d e	deejfd!ed&efd'd(Z$ej%d e	deejfd!efd)d*Z&dS )+    )	APIRouterDepends)datetime)Optional)database)	IotDeviceIotDeviceCreateIotDeviceUpdateIotDeviceListIotDeviceWithMappingListNearbyDevicesRequest)create_iot_device_serviceget_iot_device_serviceupdate_iot_device_servicedelete_iot_device_servicelist_iot_devices_service%list_iot_devices_with_mapping_servicelist_nearby_devices_service/)response_modeldevicec                       t | |I d H S Nr   )r   db r   >/var/www/html/moveengine/app/v1/routers/platform/iotdevices.pycreate_iot_device      r   z/with-mapping
   Nskiplimitqdevice_typestatus	date_fromdate_toc              	   C   s   t | |||||||S r   )r   r    r!   r"   r#   r$   r%   r&   r   r   r   r   list_iot_devices_with_mapping   s   r(   z/nearbyzIoT Devices)r   tagspayloadc                 C   s   t | j| j| j|S r   )r   latitude	longitude	radius_km)r*   r   r   r   r   list_nearby_devices$   s   r.   c              	      s   t | |||||||I d H S r   )r   r'   r   r   r   list_iot_devices0   s   r/   z/{account_id}
account_idc                    r   r   )r   r0   r   r   r   r   get_iot_device=   r   r2   c                    s   t ||I d H S r   r   )r0   r   r   r   r   r   post_iot_deviceA   r   r3   updatec                    s   t | ||I d H S r   )r   )r0   r4   r   r   r   r   update_iot_deviceE   s   r5   c                    r   r   )r   r1   r   r   r   delete_iot_deviceI   r   r6   )'fastapir   r   r   typingr   app.dbr   !app.v1.models.platform.iotdevicesr   r   r	   r
   r   r   #app.v1.services.platform.iotdevicesr   r   r   r   r   r   r   routerpostget_mongo_dbr   getintstrr(   r.   r/   r2   r3   putr5   deleter6   r   r   r   r   <module>   s     $