o
    Ah                     @   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                   @   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d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< dS )Address.   d   
min_length
max_lengthstreet2   citystate      postal_codecountryN)r   r   r   r   r   str__annotations__r   r    r#   r$   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ddddZeed< eed< eddddZeed	< eddd
dZ	eed< e
ed< eed< eddd
dZeed< ed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ejdZeed< dS )
VendorBase.r   r   r   vendor_nameaddress   r"   phoner   contact_person_nameemailvendor_typelicense_numberNr   tax_idr   websitelogodefaultstatus)r   r   r   r   r1   r%   r&   r   r4   r5   r   r'   r8   r9   r	   r;   r<   r   r   r?   r   r   r   r   r0      s   
 r0   c                   @   sF   e Zd ZU edddZeed< edddZeed< eed< eed< dS )	VendorCreate r   r:   
account_iduser_id	vendor_idv_idN)	r   r   r   r   rB   r%   r&   rC   intr   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 )VendorN_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Vendor.ConfigTN)r   r   r   arbitrary_types_allowedr   r%   json_encodersallow_population_by_field_namer   r   r   r   Config5   s    rQ   T)prec                 C   s   t |tr	t|S |S )N)
isinstancer   r%   )clsvr   r   r   convert_objectid:   s   
zVendor.convert_objectid)r   r   r   r   rJ   r%   r&   r   utcnowrL   rM   rQ   r   rV   r   r   r   r   rG   0   s   
 
rG   c                   @   s   e Zd ZU 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 ed< eed< ee ed< ee ed< ee ed< e
ed< e
ed< dZee ed< dZee ed< dS )VendorResponseNr   r:   rB   rC   r1   r2   r4   r5   r6   r7   r<   r8   r9   r;   r?   rL   rM   rD   rE   )r   r   r   r   rB   r	   r%   r&   rC   r   r   rD   rE   rF   r   r   r   r   rX   @   s$   
 rX   c                   @   s"   e Zd ZU eed< ee ed< dS )VendorResponseListtotal_countvendorsN)r   r   r   rF   r&   r
   rX   r   r   r   r   rY   S   s   
 rY   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 )VendorUpdateNr   r   r   r1   r2   r3   r"   r4   r   r5   r6   r7   r<   r8   r9   r;   r=   r?   )r   r   r   r   r1   r	   r%   r&   r2   r   r4   r5   r6   r   r7   r'   r<   r8   r9   r;   r   r   r?   r   r   r   r   r\   W   s   
 r\   N)enumr   pydanticr   r   r   r   bsonr   r   typingr	   r
   r%   r   r   r'   r0   r@   rG   rX   rY   r\   r   r   r   r   <module>   s    