o
    0.h                     @   s.  d dl mZmZ d dlmZmZmZmZmZm	Z	 d dl
m
Z
 d dlmZ d dlmZ G dd deeZG dd	 d	eeZG d
d deeZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZd S )!    )	BaseModelField)OptionalLiteralUnionListDictAny)datetime)Enum)ObjectIdc                   @   s   e Zd ZdZdZdZdS )DeviceStatusactiveinactivefaultyN)__name__
__module____qualname__ACTIVEINACTIVEFAULTY r   r   =/var/www/html/moveengine/app/v1/models/platform/iotdevices.pyr   	   s    r   c                   @   s(   e Zd ZdZdZdZdZdZdZdZ	dS )	
DeviceTypeobdiimobiledashcamseat_sensorheat_sensorgpsothersN)
r   r   r   OBDIIMOBILEDASHCAMSEAT_SENSORHEAT_SENSORGPSOTHERSr   r   r   r   r      s    r   c                   @   s   e Zd ZdZdZdS )AssociatedEntityTypevehicle	workforceN)r   r   r   VEHICLE	WORKFORCEr   r   r   r   r(      s    r(   c                   @   s   e Zd ZU eed< dZee ed< eed< eed< eed< eed< e	ed< e
ejd	Zeed
< dZee ed< dZee ed< dS )IotDeviceBase
account_idNuser_idassociated_entity_typeassociated_entity_iddevice_typeinstallation_detailsstatusdefault_factorylast_updated
model_nameuuid)r   r   r   str__annotations__r/   r   r(   r   r   r   r
   utcnowr7   r8   r9   r   r   r   r   r-      s   
 r-   c                   @   s   e Zd ZdS )IotDeviceCreateN)r   r   r   r   r   r   r   r=   ,   s    r=   c                   @   s   e Zd ZU dZee ed< dZee ed< dZ	ee ed< dZ
ee ed< dZee ed< dZee ed< eejdZee ed	< dS )
IotDeviceUpdateNr/   r0   r1   r2   r3   r4   r5   r7   )r   r   r   r/   r   r:   r;   r0   r(   r1   r2   r   r3   r4   r   r   r
   r<   r7   r   r   r   r   r>   0   s   
 r>   c                   @   s@   e Zd ZU dZee ed< eej	dZ
eed< G dd dZdS )	IotDeviceNidr5   created_datec                   @   s   e Zd ZeeiZdS )zIotDevice.ConfigN)r   r   r   r   r:   json_encodersr   r   r   r   Config>   s    rC   )r   r   r   r@   r   r:   r;   r   r
   r<   rA   rC   r   r   r   r   r?   :   s   
 r?   c                   @   "   e Zd ZU eed< ee ed< dS )IotDeviceListtotal_countdevicesN)r   r   r   intr;   r   r?   r   r   r   r   rE   B      
 rE   c                   @   sb   e Zd ZU ed ed< eed< dZee ed< dZee ed< dZ	ee ed< dZ
ee ed< dS )	FleetMappedDetailsfleettypefleet_idN
fleet_nameregistration_numbervehicle_typer4   )r   r   r   r   r;   r:   rN   r   rO   rP   r4   r   r   r   r   rJ   H   s   
 rJ   c                   @   sr   e Zd ZU ed ed< eed< dZee ed< dZee ed< dZ	ee ed< dZ
ee ed< dZee ed	< dS )
WorkforceMappedDetailsr*   rL   workforce_idN
first_name	last_namemobile_numberemail_idr4   )r   r   r   r   r;   r:   rS   r   rT   rU   rV   r4   r   r   r   r   rQ   Q   s   
 rQ   c                   @   sN   e Zd ZU dZeeeef  ed< dZ	ee
 ed< dZeeeef  ed< dS )IotDeviceWithMappingNmapped_detailsdistance_kmlast_location)r   r   r   rX   r   r   rJ   rQ   r;   rY   floatrZ   r   r:   r	   r   r   r   r   rW   \   s   
 rW   c                   @   rD   )IotDeviceWithMappingListrF   rG   N)r   r   r   rH   r;   r   rW   r   r   r   r   r\   b   rI   r\   c                   @   sB   e Zd ZU eed< eed< dZeed< dZeed< dZeed< d	S )
NearbyDevicesRequestlatitude	longitudeg      @	radius_kmr   skip
   limitN)	r   r   r   r[   r;   r`   ra   rH   rc   r   r   r   r   r]   h   s   
 r]   N)pydanticr   r   typingr   r   r   r   r   r	   r
   enumr   bsonr   r:   r   r   r(   r-   r=   r>   r?   rE   rJ   rQ   rW   r\   r]   r   r   r   r   <module>   s$     

	