U
    O%i                     @   sR  d dl mZmZ d dl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mZmZ d dlmZ d dlmZmZ ed	d
gdZejdee dee
fedddZejdeejdee
feedddZejdedee
feedddZejdedee
feeedddZejdej dee
feedddZ!dS )     )ListOptional)	APIRouterDependsstatus)Session)get_db)Company)CompanyCreateCompanyUpdate
CompanyOut)
get_or_404)datetimetimezonez/api/companies	companies)prefixtags )response_modeldbc                 C   s   |  ttj S N)queryr	   order_bynameallr    r   ;/var/www/html/me.goteku.com/backend/app/routes/companies.pylist_companies   s    r   )r   status_code)bodyr   c                 C   s.   t f |  }|| |  || |S r   )r	   
model_dumpaddcommitrefresh)r    r   companyr   r   r   create_company   s
    

r&   z/{company_id}
company_idr   c                 C   s   t |t| dS Nr	   )r   r	   r'   r   r   r   get_company   s    r*   )r(   r    r   c                 C   sX   t |t| d}|jdd D ]\}}t||| qttj|_	|
  || |S )Nr	   T)exclude_none)r   r	   r!   itemssetattrr   nowr   utc
updated_atr#   r$   )r(   r    r   r%   fieldvaluer   r   r   update_company    s    
r3   )r   c                 C   s$   t |t| d}|| |  d S r)   )r   r	   deleter#   )r(   r   r%   r   r   r   delete_company-   s    
r5   N)"typingr   r   fastapir   r   r   sqlalchemy.ormr   app.core.databaser   app.models.companyr	   Zapp.schemas.companyr
   r   r   Zapp.helpers.crudr   r   r   routergetr   postHTTP_201_CREATEDr&   strr*   putr3   r4   HTTP_204_NO_CONTENTr5   r   r   r   r   <module>   s.     