U
    ŷia                     @   sN  d dl 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 d dlmZmZmZ d dlmZ ed	d
gdZejdee dee	feedddZejdeejdee	fe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)	APIRouterDependsstatus)Session)get_db)Employee)Benefit)BenefitCreateBenefitUpdate
BenefitOut)
get_or_404z/apibenefits)prefixtagsz!/employees/{employee_id}/benefits)response_modelemployee_iddbc                 C   s0   t |t| d |ttj| ktj S )Nr   )	r   r   queryr	   filterr   order_bybenefit_dateallr    r   :/var/www/html/me.goteku.com/backend/app/routes/benefits.pyget_employee_benefits   s    
r   )r   status_code)r   bodyr   c                 C   sF   t |t| d t| |j|j|jdd}|| |  || |S )Nr   active)r   r   monthly_benefitdescriptionr   )	r   r   r	   r   r    r!   addcommitrefresh)r   r   r   benefitr   r   r   create_benefit   s    

r&   z/benefits/{benefit_id}
benefit_idr   c                 C   s   t |t| dS Nr	   )r   r	   r'   r   r   r   get_benefit,   s    r*   )r(   r   r   c                 C   sJ   t |t| d}|jdd D ]\}}t||| q|  || |S )Nr	   T)exclude_none)r   r	   
model_dumpitemssetattrr#   r$   )r(   r   r   r%   fieldvaluer   r   r   update_benefit1   s    
r1   )r   c                 C   s$   t |t| d}|| |  d S r)   )r   r	   deleter#   )r(   r   r%   r   r   r   delete_benefit;   s    
r3   N)!typingr   fastapir   r   r   sqlalchemy.ormr   app.core.databaser   app.models.employeer   Zapp.models.benefitr	   Zapp.schemas.benefitr
   r   r   app.helpers.crudr   routergetstrr   postHTTP_201_CREATEDr&   r*   putr1   r2   HTTP_204_NO_CONTENTr3   r   r   r   r   <module>   s,   
	