o
    O*i|	                     @   s   d dl mZ d dlmZmZmZmZ d dlmZ d dl	m	Z	 d dl
mZmZ G dd deeZG dd	 d	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 )    )Enum)	BaseModelFieldEmailStr	validator)ObjectId)datetime)OptionalListc                   @   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/vendormodels.pyr      s    r   c                   @   s6   e Zd ZU eed< eed< eed< eed< eed< dS )Addressstreetcitystatepostal_codecountryN)r   r   r   str__annotations__r   r   r   r   r      s   
 r   c                   @   s   e Zd ZdZdZdZdZdS )
VendorTypevendordealermanufacturerservice_centerN)r   r   r   VENDORDEALERMANUFACTURERSERVICE_CENTERr   r   r   r   r      s
    r   c                   @   s   e Zd ZU eed< eed< eed< eed< eed< eed< eed< dZe	e ed	< dZ
e	e ed
< dZe	e ed< ejZeed< dS )
VendorBasevendor_nameaddressphonecontact_person_nameemailvendor_typelicense_numberNtax_idwebsitelogostatus)r   r   r   r   r   r   r   r   r0   r	   r1   r2   r   r   r3   r   r   r   r   r(      s   
 r(   c                   @   sF   e Zd ZU dZeed< dZeed< dZee ed< dZ	ee
 ed< dS )VendorCreate 
account_iduser_idN	vendor_idv_id)r   r   r   r6   r   r   r7   r8   r	   r9   intr   r   r   r   r4   &   s
   
 r4   c                   @   s   e Zd ZU edddZ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e ed< ee ed< ee ed< e	ed< e	ed< ee ed< ee
 ed< G dd dZdS )VendorN_id)defaultaliasidr)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   created_dateupdated_dater8   r9   c                   @   s   e Zd ZdZeeiZdZdS )zVendor.ConfigTN)r   r   r   arbitrary_types_allowedr   r   json_encodersallow_population_by_field_namer   r   r   r   Config>   s    rE   )r   r   r   r   r?   r   r   r   r	   r   r:   rE   r   r   r   r   r;   ,   s$   
 r;   c                   @   s   e Zd ZdS )VendorResponseN)r   r   r   r   r   r   r   rF   C   s    rF   c                   @   s"   e Zd ZU eed< ee ed< dS )VendorResponseListtotal_countvendorsN)r   r   r   r:   r   r
   rF   r   r   r   r   rG   F   s   
 rG   c                   @   s   e Zd ZU eddddZee ed< dZee	 ed< 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
dZee ed< eddd
dZee ed< dZee ed< eejdZeed< dS )VendorUpdateN   d   )
min_length
max_lengthr)   r*         r+   2   r,   r-   r.   r2   r/   r0   r1   )r=   r3   )r   r   r   r   r)   r	   r   r   r*   r   r+   r,   r-   r   r.   r   r2   r/   r0   r1   r   r   r3   r   r   r   r   rJ   J   s   
 rJ   N)enumr   pydanticr   r   r   r   bsonr   r   typingr	   r
   r   r   r   r   r(   r4   r;   rF   rG   rJ   r   r   r   r   <module>   s    