o
    hE                     @   sp   d dl mZ d dl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 G dd deZG dd	 d	eZd
S )    )Field)INTEGERVARCHAR)Mappedmapped_columnrelationshipSession)Base)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< dS )SeafarererRoleBaseN)default
sf_role_idsf_role_name)	__name__
__module____qualname__r   r   int__annotations__r   str r   r   9/var/www/html/beacon-api/app/models/main/seafarer_role.pyr      s   
 r   c                	   @   s   e Zd ZU dZededddZee e	d< ede
ddddZee e	d< ed	d
dZdedefddZedededd fddZededededdfddZdS )TblSeafarerRoletbl_seafarer_roler   T)primary_keyautoincrementr      N)nullableserver_defaultTblSeafarersseafarer_role)back_populatesc                 C   s   || _ || _d S N)r   r   )selfr   r   r   r   r   __init__   s   
zTblSeafarerRole.__init__datadbreturnc                 C   s,   |  }| di |}|| |  |S )Nr   )
model_dumpaddflush)clsr$   r%   	data_dictnew_datar   r   r   create   s
   
zTblSeafarerRole.createzTblSeafarerRole | Nonec                 C   sf   | | | j|k }|sd S | }| D ]\}}|d ur't||| q|  || |S r!   )	queryfilterr   firstr'   itemssetattrcommitrefresh)r*   r   r$   r%   get_datar+   keyvaluer   r   r   update    s   
zTblSeafarerRole.update)r   r   r   __tablename__r   r   r   r   r   r   r   r   r   r   	seafarersr#   classmethodr   r   r-   r8   r   r   r   r   r      s   
   r   N)pydanticr   
sqlalchemyr   r   sqlalchemy.ormr   r   r   r   app.models.mainr	   app.utils.schemas_utilsr
   r   r   r   r   r   r   <module>   s    