
    7h                        S SK r S SKrS SKJrJr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  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  \" 5       r\" 5         \R6                  " SS5      r\R;                  S5      \" S5      \" S5      \" S5      \" \
5      4S\S\S\S\S\ 4
S jj5       r!\R;                  S5      \" \
5      4S\S\S\ 4S jj5       r"\RG                  S5      \" \
5      4S\ 4S jj5       r$\RK                  S5      \" S5      \" S5      \" S5      \" \
5      4S\S\S\S\S\ 4
S jj5       r&\RO                  S5      \" \
5      4S\S\ 4S jj5       r(g)     N)	APIRouterDependsHTTPExceptionForm)"disable_installed_extensions_check)check_user_is_admin)GeneralState)RoleType)
AssignRole)UserWave)WaveResponse)Wave)Program)UserFILE_STORAGE_PATHfilesz/programs/{program_id}/add-wave.
program_idtitle
start_dateend_datedependenciesc                 6   Uu  pVUR                  [        5      R                  [        R                  U :H  5      R	                  5       nU(       d  [        SS5      e[        UUUU S9nUR                  U5        UR                  5         UR                  U5        U$ )N  zProgram not found)r   r   r   r   )
queryr   filteridfirstr   r   addcommitrefresh)	r   r   r   r   r   dbadminprogramwaves	            AD:\kofCorporation\kof-academy-backend\app\routers\admins\waves.pyadd_waver&      s     IB hhw&&wzzZ'?@FFHGC!455 	D FF4LIIKJJtK    z/waves/{wave_id}/assign-userwave_iduser_idc                    Uu  p4UR                  [        5      R                  [        R                  U :H  5      R	                  5       nU(       d  [        SS5      eUR                  [        5      R                  [        R                  U:H  5      R	                  5       nU(       d  [        SS5      eUR                  [        5      R                  [        R                  U:H  [        R                  U :H  5      R	                  5       nU(       a
  SSU SU  30$ [        XS9nUR                  U5        UR                  5         UR                  U5        SSU SU  30$ )	Nr   Wave not foundzUser not foundmessagezUser z is already assigned to wave )r)   r(   z assigned to wave )r   r   r   r   r   r   r   r   r)   r(   r   r   r    )	r(   r)   r   r!   r"   r$   userexisting_linklinks	            r%   assign_userr0   :   s$    IB 88D>  G!34::<DC!122 88D>  G!34::<DC!122 		  G+X-=-=-H	I	 
 U7)+H	RSS G5DFF4LIIKJJtwi'9'CDDr'   z/wavesc                 p   U u  pUR                  [        5      R                  [        R                  [        R
                  :H  5      R                  5       nUR                  [        5      R                  [        R                  R                  U Vs/ s H  oDR                  PM     sn5      [        R                  [        R                  :H  [        R                  [        R
                  :H  5      R                  5       nUR                  [        5      R                  [        R                  R                  U Vs/ s H  oDR                  PM     sn5      [        R                  [        R                  :H  [        R                  [        R
                  :H  5      R                  5       nUUUS.$ s  snf s  snf )N)wavestrainersstudents)r   r   r   stater	   ACTIVEallr   r(   in_r   roler
   TRAINERSTUDENT)r   r!   r"   r2   r$   r3   r4   s          r%   
list_wavesr<   ^   sc   IBHHTN!!$**0C0C"CEIIKExx~$$T\\%5%556Q54ww56Q%RTXT]T]aiaqaqTqsws}s}  BN  BU  BU  tU  V  Z  Z  \Hxx~$$T\\%5%556Q54ww56Q%RTXT]T]aiaqaqTqsws}s}  BN  BU  BU  tU  V  Z  Z  \H 
 
 7R6Qs   F.:F3z/waves/{wave_id}c                 2   Uu  pVUR                  [        5      R                  [        R                  U :H  5      R	                  5       nU(       d  [        SS5      eUb  Xl        Ub  X'l        Ub  X7l        UR                  5         UR                  U5        U$ )Nr   r+   )r   r   r   r   r   r   r   r   r   r   r    )r(   r   r   r   r   r!   r"   r$   s           r%   update_waver>   l   s     IB88D>  G!34::<DC!122
$ IIKJJtKr'   c                 *   Uu  p#UR                  [        5      R                  [        R                  U :H  5      R	                  5       nU(       d  [        SS5      e[        R                  Ul        UR                  5         UR                  U5        SS0$ )Nr   r+   r,   zWave deleted successfully)r   r   r   r   r   r   r	   DELETEDr5   r   r    )r(   r   r!   r"   r$   s        r%   delete_waverA      sr    IB88D>  G!34::<DC!122%%DJIIKJJt233r'   ))datetimeosfastapir   r   r   r   fastapi_pagination.utilsr   app.utils.authentificationr   app.enums.general_stater	   app.enums.role_typer
   app.schemas.adminr   app.models.user_waver   r   app.models.waver   app.models.programr   app.models.userr   routergetenvr   postintstrtupler&   r0   getr<   putr>   deleterA    r'   r%   <module>rX      s    	 < ; G : 0 ( ( ) +   &  	 " $II17; ./ c3iI!"56  	
  0: +, ""56 E E E  E - EF H%,-@%A 	
U 	
 	
  d4jJ!"56  	
   6 !"4;<O4P 
4 
4E 
4 #
4r'   