
    h              
       ~   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mZ d dlmZmZmZ d d	lmZ  ed
dg      Zej3                  de       ee	       ee      fdededefd       Zej7                  dee          ee	       ee      fdedefd       Zej7                  de       ee	       ee      fdededefd       Zej?                  de       ee	       ee      fdedededefd       Z ejC                  de       ee	       ee      fdedededefd       Z"y)    )	APIRouterDependsHTTPException)Session)List)get_db)User)UserResponse)UniversityCreateUniversityUpdateUniversityActivity)get_password_hashget_current_active_usergenerate_random_password)
send_emailz/universitiesUniversities)prefixtags/)response_modelstaffdbcurrent_userc           	      t  K   |j                   dk(  st        dd      |j                  t              j	                  t        j
                  | j
                  k(        j                         }|rt        dd      t               }t        |      }t        | j
                  || j                  | j                   | j                  | j                  | j                        }|j                  |       |j                          |j                  |       t!        | j
                  gdd	| 
       d{    |S 7 w)z&Create a new university staff account.admin  z6You do not have permission to create university staff.status_codedetaili  zEmail already registered)emailhashed_password	full_nameroleavataraddressphonez Your University Account Passwordz1Your account has been created. Your password is: )r    subjectbodyN)r#   r   queryr	   filterr    firstr   r   r"   r$   r%   r&   addcommitrefreshr   )r   r   r   db_usergenerated_passwordr!   s         E/home/www/40-admission.kofcorporation.com/app/routers/universities.pycreate_university_staffr2      s     'K
 	

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

 23'(:;Okk'//ZZ||kkG FF7OIIKJJw {{m2@AS@TU   Ns   D-D8/D60D8 c                     |j                   dk(  st        dd      | j                  t              j	                  t        j                   dk(        j                         }|S )zList all university accounts.r   r   7You do not have permission to view university accounts.r   
university)r#   r   r)   r	   r*   all)r   r   universitiess      r1   list_universitiesr9   :   sW     'L
 	

 88D>((l)BCGGIL    z/{university_id}university_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 university account.r   r   r5   r   r6     University not found)r#   r   r)   r	   r*   idr+   )r;   r   r   r6   s       r1   get_universityr@   I   ss     'L
 	

 $&&tww-'?lAZ[aacJ4JKKr:   university_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 a university account.r   r   z9You do not have permission to update university accounts.r   r6   r=   r>   T)exclude_unset)r#   r   r)   r	   r*   r?   r+   
model_dumpitemssetattrr-   r.   )r;   rA   r   r   r6   fieldvalues          r1   update_universityrI   \   s     'N
 	

 $&&tww-'?lAZ[aacJ4JKK)4444HNNP *u
E5)* IIKJJzr:   z/{university_id}/activityuniversity_activityc                 j   |j                   dk(  st        dd      |j                  t              j	                  t        j
                  | k(  t        j                   dk(        j                         }|st        dd      |j                  |_        |j                          |j                  |       |S )z)Deactivate/activate a university account.r   r   zAYou do not have permission to change university account activity.r   r6   r=   r>   )
r#   r   r)   r	   r*   r?   r+   	is_activer-   r.   )r;   rJ   r   r   r6   s        r1   toggle_university_activityrM   u   s     'V
 	

 $&&tww-'?lAZ[aacJ4JKK.88JIIKJJzr:   N)#fastapir   r   r   sqlalchemy.ormr   typingr   app.core.databaser   app.models.userr	   app.schemas.userr
   app.schemas.universityr   r   r   app.services.authr   r   r   app.services.email_servicer   routerpostr2   getr9   intr@   putrI   patchrM    r:   r1   <module>r^      s   5 5 "  $   ) Y Y b b 1	/0@	A S. &/ !89))) ) /)V BtL12&/ !89 3 |< &/ !89  =$ |< &/ !89	' 	 	 =0 ),G &/ !89	+ 	 	 Hr:   