o
    3i                     @   s<  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deejf	dedede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_toassociated_entity_typec	           	   
   C   s   t | ||||||||	S r   )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| j|S r   )r   latitude	longitude	radius_km	list_type)r*   r   r   r   r   list_nearby_devices%   s   r/   c              	      s   t | |||||||I d H S r   )r   )r    r!   r"   r#   r$   r%   r&   r   r   r   r   list_iot_devices2   s   r0   z/{account_id}
account_idc                    r   r   )r   r1   r   r   r   r   get_iot_device?   r   r3   c                    s   t ||I d H S r   r   )r1   r   r   r   r   r   post_iot_deviceC   r   r4   updatec                    s   t | ||I d H S r   )r   )r1   r5   r   r   r   r   update_iot_deviceG   s   r6   c                    r   r   )r   r2   r   r   r   delete_iot_deviceK   r   r7   )'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/   r0   r3   r4   putr6   deleter7   r   r   r   r   <module>   s     $