o
    h	                     @   s   d dl mZ d dlmZmZ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 G dd deZG d	d
 d
eZdS )    )HTTPException)INTEGERVARCHAR
ForeignKey)Mappedmapped_columnrelationshipSession)Base)Field)CustomModelc                   @   s   e Zd ZU eddZedB ed< eddZedB ed< eddZ	edB ed< eddZ
edB ed< eddZedB ed< eddZedB ed< eddZedB ed	< eddZedB ed
< dS )
VesselBaseN)default	vessel_idvessel_namevessel_typeimovessel_standarssister_companycompany_code
company_id)__name__
__module____qualname__r   r   int__annotations__r   strr   r   r   r   r   r    r   r   7/var/www/html/beacon-api/app/models/main/vessel_list.pyr      s   
 r   c                	   @   s\  e Zd ZU dZeedddZee e	d< ee
dddZee e	d< ee
d	ddZee e	d
< ee
dddZee e	d< ee
d	ddZee e	d< ee
dddZee e	d< ee
dddZee e	d< eeedddZee e	d< edddZedddZedededd fddZedededefddZededededdfd d!Zd"S )#TblVesselListtbl_vessel_listT)primary_keyautoincrementr      F)nullabler   d   r   2   r   r      r   r   ztbl_company_list.company_idr   TblCompanyListvessels)back_populatesTblSeafarersvesseldatadbreturnc                 C   s(   | di |  }|| |  |S )Nr   )
model_dumpaddflush)clsr-   r.   
new_vesselr   r   r   create"   s   
zTblVesselList.createc                 C   s4   | | | j|k }|stdddt|S )Ni  zVessel not found)status_codedetail)queryfilterr   firstr   r   model_validate)r3   r   r.   r,   r   r   r   	get_by_id)   s   
zTblVesselList.get_by_idzTblVesselList | Nonec                 C   sf   | | | j|k }|sd S | }| D ]\}}|d ur't||| q|  || |S )N)	r8   r9   r   r:   r0   itemssetattrcommitrefresh)r3   r   r-   r.   get_data	data_dictkeyvaluer   r   r   update0   s   
zTblVesselList.updateN)r   r   r   __tablename__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   company	seafarersclassmethodr   r	   r5   r<   rE   r   r   r   r   r      s$   
  r   N)fastapir   
sqlalchemyr   r   r   sqlalchemy.ormr   r   r   r	   app.models.mainr
   pydanticr   app.utils.schemas_utilsr   r   r   r   r   r   r   <module>   s    