o
    ~+h                     @   s   d dl mZmZmZ d dlmZ d dlmZ d dlmZ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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	validator)ObjectId)datetime)OptionalList)Enumc                   @   s   e Zd ZdZdZdZdS )StatusactiveinactivemaintenanceN)__name__
__module____qualname__ACTIVEINACTIVEMAINTENANCE r   r   @/var/www/html/moveengine/app/v1/models/platform/vehiclesmodel.pyr
      s    r
   c                   @   s    e Zd ZdZdZdZdZdZdS )FuelTypepetroldieselelectrichybridhydrogenN)r   r   r   PETROLDIESELELECTRICHYBRIDHYDROGENr   r   r   r   r      s    r   c                   @   s   e Zd ZU eddddZeed< eddddZeed< eed< edd	Z	e
ed
< edd	Ze
ed< edddZeed< edddZeed< edddZee ed< edddZee ed< eejd	Zeed< dS )VehicleBase.   2   
min_length
max_lengthmanufacturer_namevehicle_type	fuel_typeF)defaultis_autonomouscan_flyr   gtcapacity_jobsgenumber_of_wheelsN	max_speedengine_capacitystatus)r   r   r   r   r'   str__annotations__r(   r   r+   boolr,   r/   intr2   r3   r   r4   r
   r   r5   r   r   r   r   r!      s   
 r!   c                   @   s>   e Zd ZU edddZeed< edddZeed< eed< dS )VehicleCreate r   r%   
account_iduser_idmodel_idN)	r   r   r   r   r=   r6   r7   r>   r9   r   r   r   r   r:   '   s   
 r:   c                   @   sl   e Zd ZU edddZeed< eejdZ	eed< eejdZ
eed< G dd	 d	Zedd
ddd ZdS )VehicleN_id)r*   aliasid)default_factorycreated_dateupdated_datec                   @   s   e Zd ZdZeeiZdZdS )zVehicle.ConfigTN)r   r   r   arbitrary_types_allowedr   r6   json_encodersallow_population_by_field_namer   r   r   r   Config1   s    rJ   Tprec                 C      t |tr	t|S |S N
isinstancer   r6   clsvr   r   r   convert_objectid6      
zVehicle.convert_objectid)r   r   r   r   rC   r6   r7   r   utcnowrE   rF   rJ   r   rT   r   r   r   r   r@   ,   s   
 
r@   c                   @   s   e Zd ZU eed< edddZee ed< edddZee ed< eed< eed< eed	< e	ed
< e	ed< e
ed< e
ed< ee
 ed< edddZee
 ed< ee ed< eed< eed< e
ed< eddddd ZdS )VehicleResponse
vehicle_idNr   r<   r=   r>   r'   r(   r)   r+   r,   r/   r2   r3   r-   r4   r5   rE   rF   r?   TrK   c                 C   rM   rN   rO   rQ   r   r   r   rT   N   rU   z VehicleResponse.convert_objectid)r   r   r   r6   r7   r   r=   r   r>   r8   r9   r4   r   r   rT   r   r   r   r   rW   <   s&   
 
rW   c                   @   s"   e Zd ZU eed< ee ed< dS )VehicleResponseListtotal_countvehiclesN)r   r   r   r9   r7   r   rW   r   r   r   r   rY   T   s   
 rY   c                   @   s   e Zd ZU eddddZee ed< edd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dd
dZee ed< edd
dZee ed< edd
dZee ed< edd
dZee ed< dZee ed< dS )VehicleUpdateNr"   r#   r$   r'   r(   r)   r+   r,   r   r-   r/   r0   r2   r3   r4   r5   )r   r   r   r   r'   r   r6   r7   r(   r)   r   r+   r8   r,   r/   r9   r2   r3   r4   r5   r   r   r   r   r\   X   s   
 r\   N)pydanticr   r   r   bsonr   r   typingr   r   enumr	   r6   r
   r   r!   r:   r@   rW   rY   r\   r   r   r   r   <module>   s    
