o
    h*                     @   s   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 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)Mappedmapped_columnSessionrelationship)Base)Field)Optional)CustomModelc                   @   s  e Zd ZU eddZee ed< eddZee	 ed< eddZ
ee	 ed< eddZee	 ed< eddZee	 ed< eddZee	 ed< eddZee	 ed	< eddZee	 ed
< eddZee	 ed< eddZee	 ed< eddZee	 ed< eddZee	 ed< dS )CompanyListBaseN)default
company_idlicence_valid_untilclient_codeaddressp_admin_namep_admin_emailp_admin_mobils_admin_names_admin_emails_admin_mobillicence_date_issuedcertificate_name_format)__name__
__module____qualname__r
   r   r   int__annotations__r   strr   r   r   r   r   r   r   r   r   r    r!   r!   8/var/www/html/beacon-api/app/models/main/company_list.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Zee e	d< ede
dddZee e	d< ed	e
dddZee e	d	< ed
e
dddZee e	d
< ede
dddZee e	d< ede
dddZee e	d< ede
dddZee e	d< ede
dddZee e	d< ede
dddZee e	d< ee
dddZee e	d< ed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 )"TblCompanyListtbl_company_listr   T)primary_keyautoincrementr      )nullabler   r   r   r   r   r   r   r      r   r   TblAdmincompany)back_populatesTblVesselListdatadbreturnc                 C   s,   |  }| di |}|| |  |S )Nr!   )
model_dumpaddflush)clsr.   r/   	data_dict	new_adminr!   r!   r"   create-   s
   
zTblCompanyList.createc                 C   s4   | | | j|k }|stdddt|S )Ni  zCompany not found)status_codedetail)queryfilterr   firstr   r   model_validate)r4   r   r/   resultr!   r!   r"   	get_by_id5   s   
zTblCompanyList.get_by_idzTblCompanyList | Nonec                 C   sf   | | | j|k }|sd S | }| D ]\}}|d ur't||| q|  || |S )N)	r:   r;   r   r<   r1   itemssetattrcommitrefresh)r4   r   r.   r/   get_datar5   keyvaluer!   r!   r"   update<   s   
zTblCompanyList.updateN) r   r   r   __tablename__r   r   r   r   r   r   r   r   r    r   r   r   r   r   r   r   r   r   r   r   adminsvesselsclassmethodr   r   r7   r?   rG   r!   r!   r!   r"   r#      s,   
  r#   N)fastapir   
sqlalchemyr   r   sqlalchemy.ormr   r   r   r   app.models.mainr	   pydanticr
   typingr   app.utils.schemas_utilsr   r   r#   r!   r!   r!   r"   <module>   s    