
    h	                         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e      Z G d	 d
e      Zy)    )HTTPException)INTEGERVARCHAR
ForeignKey)Mappedmapped_columnrelationshipSession)Base)Field)CustomModelc                      e Zd ZU  ed      Zedz  ed<    ed      Zedz  ed<    ed      Z	edz  ed<    ed      Z
edz  ed<    ed      Zedz  ed<    ed      Zedz  ed<    ed      Zedz  ed	<    ed      Zedz  ed
<   y)
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        7/var/www/html/beacon-api/app/models/main/vessel_list.pyr   r      s    !$/IsTz/#D1Kt1#D1Kt1D)Ct)"'"5OS4Z5!&t!4NC$J4 %d 3L3:3"40Jd
0r    r   c            	          e Zd ZU dZ 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
<    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<    e e
d      d      Zee   e	d<    ee ed      d      Zee   e	d<    edd      Z edd      Zedededd fd       Zedededefd       Zededededdfd       Zy) 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                 t     | di |j                         }|j                  |       |j                          |S )Nr   )
model_dumpaddflush)clsr1   r2   
new_vessels       r!   createzTblVesselList.create"   s1    -4??,-

z

r    c                     |j                  |       j                  | j                  |k(        j                         }|st	        dd      t
        j                  |      S )Ni  zVessel not found)status_codedetail)queryfilterr   firstr   r   model_validate)r8   r   r2   r0   s       r!   	get_by_idzTblVesselList.get_by_id)   sN    #%%cmmy&@AGGIC8JKK((00r    zTblVesselList | Nonec                 4   |j                  |       j                  | j                  |k(        j                         }|sy |j	                         }|j                         D ]  \  }}|	t        |||        |j                          |j                  |       |S )N)	r>   r?   r   r@   r5   itemssetattrcommitrefresh)r8   r   r1   r2   get_data	data_dictkeyvalues           r!   updatezTblVesselList.update0   s    88C=''(BCIIKOO%	#//+JC #u- , 			


8r    N)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
   r:   rB   rL   r   r    r!   r#   r#      sm   %M*7TXYIvc{Y,WS\EJKJ,WS\DIKI$WR[4@C@#0#MOVC[M"/d"KNF3KK -gbkD IL&+I+GZ@]5^inoJso+IFG^HEI* ' o   1# 17 1z 1 1 
s 
* 
' 
F\ 
 
r    r#   N)fastapir   
sqlalchemyr   r   r   sqlalchemy.ormr   r   r	   r
   app.models.mainr   pydanticr   app.utils.schemas_utilsr   r   r#   r   r    r!   <module>rW      s5    ! 3 3 F F    /1 1(D (r    