
    hF              
       b   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 d dlmZmZ d dlmZmZ  ed	d
g      Zej+                  de       ee	       ee      fdededefd       Zej/                  dee          ee	       ee      fdedefd       Zej/                  de       ee	       ee      fdededefd       Zej7                  de       ee	       ee      fdedededefd       Zej;                  d       ee	       ee      fdededefd       Zy)    )	APIRouterDependsHTTPException)Session)List)get_db)User)AdminCreate)UserResponse
UserUpdate)get_current_active_userget_password_hashz/adminsAdmins)prefixtags/)response_modeladmindbcurrent_userc           	          |j                   dk(  st        dd      |j                  t              j	                  t        j
                  | j
                  k(        j                         }|rt        dd      t        | j                        }t        | j
                  || j                  | j                   | j                  | j                  | j                        }|j                  |       |j                          |j                  |       |S )zCreate a new admin account.r     z4You do not have permission to create admin accounts.status_codedetaili  zEmail already registered)emailhashed_password	full_nameroleavataraddressphone)r   r   queryr	   filterr   firstr   passwordr   r    r!   r"   addcommitrefresh)r   r   r   db_userr   s        ?/home/www/40-admission.kofcorporation.com/app/routers/admins.pycreate_adminr,      s     'I
 	

 hhtn##DJJ%++$=>DDFG-
 	

 (7Okk'//ZZ||kkG FF7OIIKJJwN     c                     |j                   dk(  st        dd      | j                  t              j	                  t        j                   dk(        j                         }|S )zList all admin accounts.r   r   2You do not have permission to view admin accounts.r   )r   r   r#   r	   r$   all)r   r   adminss      r+   list_adminsr3   2   sV     'G
 	

 XXd^""499#78<<>FMr-   z/{admin_id}admin_idc                    |j                   dk(  st        dd      |j                  t              j	                  t        j
                  | k(  t        j                   dk(        j                         }|st        dd      |S )zGet a specific admin account.r   r   r0   r     Admin not found)r   r   r#   r	   r$   idr%   r4   r   r   r   s       r+   	get_adminr:   A   sr     'G
 	

 HHTN!!$''X"5tyyG7KLRRTE4EFFLr-   user_updatec                    |j                   dk(  st        dd      |j                  t              j	                  t        j
                  | k(  t        j                   dk(        j                         }|st        dd      |j                  d      j                         D ]  \  }}t        |||        |j                          |j                  |       |S )	zUpdate an admin account.r   r   z4You do not have permission to update admin accounts.r   r6   r7   T)exclude_unset)r   r   r#   r	   r$   r8   r%   
model_dumpitemssetattrr(   r)   )r4   r;   r   r   r   fieldvalues          r+   update_adminrC   T   s     'I
 	

 HHTN!!$''X"5tyyG7KLRRTE4EFF#..T.BHHJ %uue$% IIKJJuLr-   c                 L   |j                   dk(  st        dd      |j                  t              j	                  t        j
                  | k(  t        j                   dk(        j                         }|st        dd      |j                  |       |j                          ddiS )	zDelete an admin account.r   r   z4You do not have permission to delete admin accounts.r   r6   r7   messagezAdmin deleted successfully)	r   r   r#   r	   r$   r8   r%   deleter(   r9   s       r+   delete_adminrG   m   s     'I
 	

 HHTN!!$''X"5tyyG7KLRRTE4EFFIIeIIK344r-   N)fastapir   r   r   sqlalchemy.ormr   typingr   app.core.databaser   app.models.userr	   app.schemas.universityr
   app.schemas.userr   r   app.services.authr   r   routerpostr,   getr3   intr:   putrC   rF   rG    r-   r+   <module>rV      s   5 5 "  $   . 5 H	)8*	5 S. &/ !89!!! ! /!H BtL12&/ !89 3 M,7 &/ !89  8$ M,7 &/ !89	 	 	 80 } &/ !89555 5 5r-   