
    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Jr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,J-r-J.r.  S SK/J0r0  S SK1J2r2J3r3  S SK4J5r5J6r6  \" 5       r7\" 5         \Rp                  " SS5      r9\7Ru                  S5      \" \25      4S\-S\;4S jj5       r<\7R{                  S5      \" \25      4S\;4S jj5       r>\7R{                  S5      \" \25      4S\?S\;4S jj5       r@\7Ru                  S5      \" \25      4S\?S\.S\;4S jj5       rA\7R{                  S5      \" \25      4S\;4S jj5       rBg)     N)	APIRouterDependsHTTPExceptionFile
UploadFile)Pagepaginate)"disable_installed_extensions_check)descfunc)
joinedload)GeneralState)	UserState)RegistrationState)UserProgramQuizModuleQuestionLessonCourseNotificationReviewChatWave)Registration)UserBase
UserUpdateUserPasswordUpdateRegistrationRequestQuizAnswersReviewCreateChatMessageCreate)send_otp_email)check_token_validitypwd_context)get_random_intgenerate_otpFILE_STORAGE_PATHfilesz/reviews	review_independenciesc                    Uu  p#UR                  [        5      R                  [        R                  UR                  :H  [        R
                  U R
                  :H  [        R                  S:H  5      R                  5       nU(       d
  [        SSS9e[        U R
                  UR                  U R                  U R                  [        R                  " 5       S9nUR                  U5        UR                  5         UR!                  U5        U$ )N	COMPLETED  u7   Vous devez compléter le programme pour laisser un avisstatus_codedetail)
program_iduser_idratingcomment
created_at)queryr   filterr4   idr3   tracking_statefirstr   r   r5   r6   datetimeutcnowaddcommitrefresh)r+   r,   dbuserregistrationreviews         :D:\kofCorporation\kof-academy-backend\app\routers\chats.pycreate_reviewrG      s    
 HB 88L)00'9#7#77##{2 eg	  4mnn ''!!??$F FF6NIIKJJvM    z/chats/wavesc                     U u  pUR                  [        5      R                  [        5      R	                  [        R
                  UR                  :H  5      R                  5       nU$ N)r8   r   joinr   r9   r4   r:   all)r,   rB   rC   wavess       rF   get_user_wavesrN   >   sO    HBHHTN-44'	ce 
 LrH   z/chats/waves/{wave_id}wave_idc                    Uu  p#UR                  [        5      R                  [        R                  UR                  :H  [        R
                  U :H  5      R                  5       nU(       d
  [        SSS9eUR                  [        5      R                  [        R
                  U :H  5      R                  [        R                  R                  5       5      R                  5       nU$ )Nr/      Non inscrit à cette vaguer0   )r8   r   r9   r4   r:   rO   r<   r   r   order_byr7   ascrL   )rO   r,   rB   rC   rD   messagess         rF   get_wave_messagesrU   I   s    
 HB 88L)00'' eg 
 4PQQxx~$$ht""$%cce  OrH   z/chats/waves/{wave_id}/messages
message_inc                    Uu  p4UR                  [        5      R                  [        R                  UR                  :H  [        R
                  U :H  5      R                  5       nU(       d
  [        SSS9e[        U UR                  UR                  [        R                  " 5       S9nUR                  U5        UR                  5         UR                  U5        U$ )Nr/   rQ   r0   )rO   r4   contentr7   )r8   r   r9   r4   r:   rO   r<   r   r   rX   r=   r>   r?   r@   rA   )rO   rV   r,   rB   rC   rD   messages          rF   post_messagerZ   b   s     HB 88L)00'' eg 
 4PQQ""??$	G FF7OIIKJJwNrH   z/notificationsc                     U u  pUR                  [        5      R                  [        R                  UR                  :H  5      R                  [        R                  R                  5       5      R                  5       nU$ rJ   )	r8   r   r9   r4   r:   rR   r7   r   rL   )r,   rB   rC   notificationss       rF   get_notificationsr]      s^    HBHH\*11'h|&&++-.ssu  rH   )Cr=   os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   r   r   r   r   r   r   app.models.registrationr   app.schemas.userr   r   r   r    r!   r"   r#   app.services.emailr$   app.utils.authentificationr%   r&   app.utils.helpersr'   r(   routergetenvr)   posttuplerG   getrN   intrU   rZ   r]    rH   rF   <module>ru      s    	  G G - G ! % 0 * : t s s s 0 I  I  I - H :	 " $II17;  Z ""67 > N)01E)F    $% ""67 &0 ./ ""67!  0< ,34H,I E  rH   