
    @h@                     |    d dl mZ 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	      Zy
)    )List)HTTPException)Session)CompanyListCreatCompanyListResponseCompanyListUpdateVesselResponse)CompanyListBaseTblCompanyList)TblVesselList)CustomResponsec                   l    e Zd ZdedefdZdefdZdede	fdZ
dedee   fd	Zdefd
Zdee   fdZy)CompanyServicedbtokenc                      || _         || _        y N)r   r   )selfr   r   s      8/var/www/html/beacon-api/app/api/company_list/service.py__init__zCompanyService.__init__
   s    
    requestc                    K   t        j                  |      }t        j                  || j                         | j                  j                          t        dd      S w)N1z!Company List created successfullystatusmessage)r
   model_validater   creater   commitr   )r   r   created_admins      r   create_companyzCompanyService.create_company   sF     '66w?mTWW5S2UVV   AA
company_idreturnc                    K   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      t        j                  |      S w)N  Company not foundstatus_codedetail)	r   queryr   filterr$   firstr   r   r   )r   r$   companys      r   get_companyzCompanyService.get_company   sZ     ''--/66~7P7PT^7^_eegC8KLL"11'::s   A2A4c                   K   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      |D cg c]  }t        j                  |       c}S c c}w w)Nr'   z!No vessels found for this companyr)   )	r   r,   r   r-   r$   allr   r	   r   )r   r$   vesselsvs       r   get_company_vesselsz"CompanyService.get_company_vessels   sl     ''--.55m6N6NR\6\]aacC8[\\:AB'Q--a0'BBBs   A!B#B?Bc                    K   t        j                  |      }t        j                  |j                  || j
                        }|st        dd      t        dd      S w)Nr'   r(   r)   r   z!Company List updated successfullyr   )r
   r   r   updater$   r   r   r   )r   r   company_baser/   s       r   update_companyzCompanyService.update_company    sS     &55g> ''(:(:L$''RC8KLLS2UVVr#   c                    K   | j                   j                  t              j                         }|D cg c]  }t	        j
                  |       c}S c c}w wr   )r   r,   r   r2   r
   r   )r   resultsrs      r   get_all_companiesz CompanyService.get_all_companies'   sD     ''--/335;BC7a..q17CCCs   2AAAN)__name__
__module____qualname__r   dictr   r   r"   intr   r0   listr	   r5   r   r9   r   r
   r=    r   r   r   r   	   su    7 4 W,< W;C ;4G ;CC CD<P CW,= WDo)> Dr   r   N)typingr   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   rD   r   r   <module>rL      s)     ! " q q H 5 2 D  Dr   