
    }h
              
          S SK r S SKrS SKrS SKJrJrJrJrJr  S SK	J
r
Jr  S SKJr  S SKJrJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJrJrJrJrJr  S SKJ r   S SK!J"r"J#r#J$r$J%r%J&r&  S SK'J(r(  S SK)J*r*J+r+  S SK,J-r-J.r.  \" 5       r/\" 5         \R`                  " SS5      r1\/Re                  S\"S9\" \*5      4S\34S jj5       r4\/Rk                  S5      \" S5      \" S5      \" \*5      4S\6S\6S\S\34S jj5       r7g)    N)	APIRouterDependsHTTPExceptionFile
UploadFile)Pagepaginate)"disable_installed_extensions_check)descfunc)
joinedload)GeneralState)	UserState)RegistrationState)UserProgramQuizModuleQuestion)Registration)UserBase
UserUpdateUserPasswordUpdateRegistrationRequestQuizAnswers)send_otp_email)check_token_validitypwd_context)get_random_intgenerate_otpFILE_STORAGE_PATHfilesz/me)response_modeldependenciesc                     U u  pUR                  [        5      R                  [        R                  UR                  :H  [        R                  [
        R                  :H  5      R                  5       nU$ )N)queryr   filteridstater   ACTIVEfirst)r$   dbuserdb_users       <D:\kofCorporation\kof-academy-backend\app\routers\profile.py	read_userr0      sM    HBhhtn##DGGtww$6

iFVFV8VW]]_GN    z/me{user_id}.user_id	user_dataavatarc                   #    Uu  pE[         R                  " U5      n UR                  [        5      R	                  [        R
                  U :H  [        R                  [        R                  :H  5      R                  5       nUc
  [        SSS9eUR                  5       R                  5        H  u  pU	c  M
  [        XxU	5        M     U(       a  UR                  R                  S5      S   n
[         R"                  R%                  [&        [)        S5       SU
 35      n[+        US5       nUR-                  UR/                  5       I S h  vN 5        S S S 5        Xl        UR3                  5         UR5                  U5        SS	US
.$  N=! , (       d  f       N== f! [6         a  nS[9        U5      S.s S nA$ S nAff = f7f)Ni  zUser not found)status_codedetail.
   wbTu%   Utilisateur mis à jour avec succès!)statusmessager-   F)r<   r=   )r   model_validate_jsonr&   r   r'   r(   r)   r   r*   r+   r   
model_dumpitemssetattrfilenamesplitospathjoinr!   r   openwritereadr4   commitrefresh	Exceptionstr)r2   r3   r4   r$   r,   r-   user_updater.   keyvaluefile_extensionavatar_pathfes                 r/   update_userrU   &   sm     HB00;K
((4.''7(:DJJ)JZJZ<Z[aac?C8HII%00288:JC e, ; #__2237;N'',,'8^B=O<PPQR`Qa:bcKk4(Afkkm+, )(N
		


7 >
 	
 , )(  
1v
 	

sf   F>BF 6A3F )FF
	F4F F>F
FF 
F;#F60F;1F>6F;;F>)8datetimerD   randomfastapir   r   r   r   r   fastapi_paginationr   r	   fastapi_pagination.utilsr
   
sqlalchemyr   r   sqlalchemy.ormr   app.enums.general_stater   app.enums.user_stater   app.enums.registration_stater   app.models.baser   r   r   r   r   app.models.registrationr   app.schemas.userr   r   r   r   r   app.services.emailr   app.utils.authentificationr   r   app.utils.helpersr   r    routergetenvr!   gettupler0   putrM   rU    r1   r/   <module>rl      s     	  G G - G ! % 0 * : B A 0 g g - H :	 " $II17;  E(+$+,@$A E  , N59#YUYZ^U_,34H,I#
s #
s #

 #
$)#
 #
r1   