o
    ȟ1i                     @   sl  d dl mZmZmZ d dlmZ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 eddZejd	eed
gedeeeefde
defddZejd	ededeeeefdedefddZedeeeefdefddZejdedeeeefdefddZejdeeed
gdeeeefdedefddZejdeeed
gdeeeefdefdd Zejdeeed
gdeeeefdefd!d"Z	 ejd#edeeeefdedefd$d%Z ejd#ededededededeeeefded&e!d'ed(e"d)e!defd*d+Z#ejd,eed
gd-eeeefd.edefd/d0Z$ejd1edeeeefd2d3Z%ejd4edeeeefdefd5d6Z&ejd7edeeeefd8edefd9d:Z'ejd;d<d=eefd>edefd?d@Z(ejdAedeeeefd>edefdBdCZ)dS )D    )Depends	APIRouterQuery)require_roleget_user)GenericResponse)BursaryDiscountInfoBursaryDiscountInfoListResponseBursaryDiscountInfoUpdateSchemaBursaryCourseAllocationCreate)CreateBursaryApplicationApplicationListResponse)BursaryDiscountServicez/bursary_discount)prefixz/infoadmin)dependenciesresponse_modelrequestservicec                       | |  ddiS Nmessagez+Bursary discount info created successfully.)Zcreate_infor   userr    r   /app/api/bursary_discount.pycreate_bursary_discount_info      
r   )r   Nacademic_year_idc                       d| | dS NzBursary populated successfully.r   data)Zlist_all_info)r   r   r   r   r   r   list_bursary_discount_info   s   r#   z/academic_yearc                       d|  dS r    )Zlist_bursary_info_academic_yearr   r   r   r   r   bursary_info_academic_year   s   r&   z/info/{bursary_discount_id}bursary_discount_idc                    r   )Nz(Bursary discount populated successfully.r!   )bursary_discount_detailr'   r   r   r   r   r   r(   #   s   r(   )r   r   c                    s   | | | ddiS )Nr   z&Bursary discount updated successfully.)update_bursary_discount)r'   r   r   r   r   r   r   r*   *   s   r*   c                    r   )Nr   z	 Success.)toogle_enabler)   r   r   r   r+   2      
r+   c                    r   )Nr   z&Bursary discount deleted successfully.)delete_bursary_discountr)   r   r   r   r-   :   r,   r-   z/applicationc                    s   | | | ddiS r   )Zcreate_applicationr   r   r   r   create_bursary_applicationG   s   r.   nameageis_approvedapplication_numberc                    s   d| | ||||dS )NzApplication list populated.r!   )Zlist_application)r   r/   r0   r1   r2   r   r   r   r   r   list_bursary_applicationN   s   r3   z/application/approve/{id})r   idc                    r   )Nr   zApplication approved .)Zapprove_application)r4   r   r   r   r   r   approve_bursary_applicationW   r   r5   z/coursesc                    r$   )Nz'Bursary courses populated successfully.r!   )Zfetch_all_bursary_coursesr%   r   r   r   list_all_bursary_courses^   s   r6   z/course/allocatec                    s   | |  i S N)allocate_courser   r   r   r   r8   c   s   
r8   z"/course/allocated/{application_id}application_idc                    s   d| | iS )Nr"   )list_allocated_course)r9   r   r   r   r   r   r:   j      r:   z!/course/allocated/{allocation_id}   )status_codeallocation_idc                    s   | |  d S r7   )Zremove_course_allocation)r>   r   r   r   r   remove_allocated_coursep   r;   r?   z)/course/allocated/details/{allocation_id}c                    r   )z:Get detailed information about a specific allocated coursez/Allocated course details retrieved successfullyr!   )get_allocated_course_details)r>   r   r   r   r   r   r@   v   s   r@   )*fastapir   r   r   core.security.authenticationr   r   schemar   Zschema.bursary_discountr   r	   r
   r   r   r   Zservices.bursary_discountr   bursary_discount_routerpostr   getintr#   r&   r(   putr*   patchr+   deleter-   r.   strboolr3   r5   r6   r8   r:   r?   r@   r   r   r   r   <module>   s    
