o
    hi                     @   sj   d dl mZ d dlmZ d dlmZmZmZmZ d dl	m
Z
mZ d dlmZ d dlmZ G dd dZd	S )
    )HTTPException)Session)CompanyListCreatCompanyListResponseCompanyListUpdateVesselResponse)CompanyListBaseTblCompanyList)TblVesselList)CustomResponsec                   @   sb   e Zd ZdedefddZdefddZded	e	fd
dZ
ded	ee fddZdefddZdS )CompanyServicedbtokenc                 C   s   || _ || _d S )N)r   r   )selfr   r    r   8/var/www/html/beacon-api/app/api/company_list/service.py__init__	   s   
zCompanyService.__init__requestc                    s0   t |}t|| j | j  tdddS )N1z!Company List created successfullystatusmessage)r   model_validater	   creater   commitr   )r   r   created_adminr   r   r   create_company   s
   

zCompanyService.create_company
company_idreturnc                    s8   | j ttj|k }|stdddt|S )N  Company not foundstatus_codedetail)	r   queryr	   filterr   firstr   r   r   )r   r   companyr   r   r   get_company   s
   
zCompanyService.get_companyc                    s<   | j ttj|k }|stddddd |D S )Nr   z!No vessels found for this companyr!   c                 S   s   g | ]}t |qS r   )r   r   ).0vr   r   r   
<listcomp>   s    z6CompanyService.get_company_vessels.<locals>.<listcomp>)r   r$   r
   r%   r   allr   )r   r   vesselsr   r   r   get_company_vessels   s
   z"CompanyService.get_company_vesselsc                    s:   t |}t|j|| j}|stdddtdddS )Nr   r    r!   r   z!Company List updated successfullyr   )r   r   r	   updater   r   r   r   )r   r   company_baser'   r   r   r   update_company   s   
zCompanyService.update_companyN)__name__
__module____qualname__r   dictr   r   r   intr   r(   listr   r.   r   r1   r   r   r   r   r      s    r   N)fastapir   sqlalchemy.ormr   app.api.company_list.schemasr   r   r   r   app.models.main.company_listr   r	   app.models.main.vessel_listr
   app.utils.schemas_utilsr   r   r   r   r   r   <module>   s    