o
    Ah9                     @   s   d dl mZmZmZ d dlmZ d dlmZ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G dd deZdS )    )	BaseModelField	validator)ObjectId)datetimedate)OptionalList)Enumc                   @      e Zd ZdZdZdZdS )FleetStatusactiveinactivemaintenanceN__name__
__module____qualname__ACTIVEINACTIVEMAINTENANCE r   r   9/var/www/html/moveengine/app/v1/models/platform/fleets.pyr          r   c                   @   r   )VehicleStatusr   r   r   Nr   r   r   r   r   r      r   r   c                   @   s  e Zd ZU edddZeed< eddddZeed< edd	d	dZeed
< edddZ	eed< eddddZ
eed< edde jd dZeed< edddZeed< dZee ed< dZee ed< edZeed< eed< edZeed< eejdZeed< dS )VehicleBase.z"Unique vehicle identifier (string))description
vehicle_id      
min_length
max_lengthregistration_number   
vin_numberzReference to vehicle modelvehicle_model_id   coloril     )gtleyearzImage URL or pathvehicle_imageNinsurance_numberinsurance_expiry	vendor_idvendor_name	dealer_iddefaultstatus)r   r   r   r   r   str__annotations__r#   r%   r&   r(   r   nowr,   intr-   r.   r   r/   r   r0   r2   r   r   r5   r   r   r   r   r      s   
  r   c                   @   sP  e Zd ZU eddddZeed< edddZee ed	< ee	j
d
Z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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< dZee ed< dZee ed< dZee ed< eed< dZee ed< eed< dS )	FleetBase.r   2   r    
fleet_nameN   r"   r   r3   r5   r   r#   r%   r&   r(   r,   r-   r.   r/   r0   r2   	fuel_typevehicle_typecapacityr1   tag_name	fleets_id)r   r   r   r   r<   r6   r7   r   r   r   r   r5   r   r#   r%   r&   r(   r,   r9   r-   r.   r/   r   r0   r2   r?   r@   rA   rB   r   r   r   r   r:   !   s*   
 r:   c                   @   s&   e Zd ZU dZeed< dZeed< dS )FleetCreate 
account_iduser_idN)r   r   r   rF   r6   r7   rG   r   r   r   r   rD   9   s   
 rD   c                   @   sX   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dS )
FleetN_id)r4   aliasid)default_factorycreated_dateupdated_datec                   @   s   e Zd ZeeiZdZdS )zFleet.ConfigTN)r   r   r   r   r6   json_encoderspopulate_by_namer   r   r   r   ConfigB   s    rQ   )r   r   r   r   rK   r6   r7   r   utcnowrM   rN   rQ   r   r   r   r   rH   =   s
   
 rH   c                   @   s  e Zd ZU eed< eed< dZee ed< dZee ed< eed< dZ	ee 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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< 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d< eed< eddddd Zedddd d! ZdS )"FleetResponsefleet_idrC   rE   rF   rG   r<   Nr   r5   r   r#   r%   r&   r(   r,   r-   r.   r/   r0   r1   rB   r2   r?   r@   rA   rM   rN   T)prec                 C   s   t |tr	t|S |S N)
isinstancer   r6   clsvr   r   r   convert_objectidd   s   
zFleetResponse.convert_objectidc                 C   s   |r	t |tr	d S |S rV   )rW   bytesrX   r   r   r   validate_image_urlj   s   z FleetResponse.validate_image_url)r   r   r   r6   r7   r9   rF   r   rG   r   r   r#   r%   r&   r(   r,   r-   r.   r/   r   r0   r1   rB   r2   r?   r@   rA   r   r   r[   r]   r   r   r   r   rS   F   s<   
 


rS   c                   @   s"   e Zd ZU eed< ee ed< dS )FleetResponseListtotal_countfleetsN)r   r   r   r9   r7   r	   rS   r   r   r   r   r^   q   s   
 r^   c                   @   sd   e Zd ZU eddddZee ed< edddZee ed< dZ	ee
 ed	< dZeee  ed
< dS )FleetUpdateNr   r;   r    r<   r=   r>   r   r5   vehicles)r   r   r   r   r<   r   r6   r7   r   r5   r   rb   r	   r   r   r   r   r   ra   u   s
   
 ra   N)pydanticr   r   r   bsonr   r   r   typingr   r	   enumr
   r6   r   r   r   r:   rD   rH   rS   r^   ra   r   r   r   r   <module>   s   	+