
    Eoh                        d dl mZmZmZmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZmZmZ d dlmZmZmZmZmZmZ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$  e       Z%e%jM                  de$d       ee      fdede	fd       Z'e%jQ                  de$d       e        ed       eddd       ee jR                  de jT                  d       ee       ee"      fdede+de,de,de	defd       Z-e%jM                  de$d       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fd"       Z0e%jQ                  d#e$!       ee       ee"      fde	defd$       Z1e%jQ                  d%e$d       ee       ee"      fd&e+de	defd'       Z2e%jQ                  d(d)*       ed+d,-       ed+d.-       ee       ee"      fd&e+d/e3de	defd0       Z4e%jk                  d%d1*       ed+d2-       ee       ee"      fd&e+de	defd3       Z6e%j_                  d%e$!       ed+d4-       ee       ee"      fded&e+de	defd5       Z7y6)7    )	APIRouterDependsHTTPExceptionstatus)PathQuery)Session)Users)ChangePasswordSchemaUserCreateSchemaUserFilterSchemaUserReturnSchemaUserSessionsResponseUserUpdateSchema)	change_password_servicecreate_user_servicedelete_user_serviceget_all_users_serviceget_user_by_user_id_serviceget_user_sessions_with_limitupdate_user_profileupdate_user_serviceuser_status_change_service)get_db)	constants)get_current_user)ResponseModel zRegister a new user)response_modelsummarypayloaddbc                 n   K   t        | |       d {   }t        |t        j                  d      S 7  w)NzRecord created successfullydatastatus_codemessage)r   r   r   HTTP_201_CREATED)r!   r"   responses      \/var/www/html/wine-match-dev/backend/winematch-backend/src/apps/user/routers/user_routers.pyregister_userr+   !   s5     ("55H6#:#:Da  6s   53!5zGet all usersz-created_at)default   zPage number)r,   gedescriptionzItems per page)r,   r.   ler/   sort_bypageper_pagecurrent_userc           	          t        |||| |r|j                  d      ng       }t        |t        j                  d      S )N,)r2   r3   r!   r1   Record fetched successfullyr$   )r   splitr   r   HTTP_200_OK)r!   r1   r2   r3   r"   r4   r)   s          r*   get_all_usersr:   )   sF     $
'Y`7==QTCUfhH 6#5#5?\     z/change-passwordc                 T    t        |||       }t        |t        j                  d      S )NzPassword changed successfullyr$   )r   r   r   r9   r!   r"   r4   r)   s       r*   change_passwordr>   ?   s-     &b,@H6#5#5?^ r;   z/update-profile)r   c                 p   K   t        || |       d {   }t        |t        j                  d      S 7  wNzRecord updated successfullyr$   )r   r   r   r9   r=   s       r*   update_my_profilerA   K   s:      )wCCH6#5#5?\  Ds   64!6z/user-sessionc                 h    t        | |j                        }t        |t        j                  d      S )N)r"   user_idr7   r$   )r   idr   r   r9   )r"   r4   r)   s      r*   get_my_sessionsrE   W   s-    *b,//JH6#5#5?\ r;   z
/{user_id}rC   c                 R    t        ||       }t        |t        j                  d      S )Nr7   r$   )r   r   r   r9   rC   r"   r4   r)   s       r*   get_user_by_idrH   _   s+     *"g6H6#5#5?\ r;   z/change-status/{user_id}zChange user status)r    .zID of the user to change status)r/   zChange status of the user	is_activec                 T    t        || |      }t        |t        j                  d      S r@   )r   r   r   r9   )rC   rI   r"   r4   r)   s        r*   change_user_statusrK   j   s-     *"gyAH6#5#5?\ r;   zDelete a userzID of the user to deletec                 R    t        ||       }t        |t        j                  d      S )NzRecord deleted successfullyr$   )r   r   r   r9   rG   s       r*   delete_userrM   w   s+     ""g.H6#5#5?\ r;   zID of the user to updatec                 \   K   t        | ||      }t        |t        j                  d      S wr@   )r   r   r   r9   )r!   rC   r"   r4   r)   s        r*   update_user_detailsrO      s1      #7B8H6#5#5?\ s   *,N)8fastapir   r   r   r   fastapi.paramsr   r   sqlalchemy.ormr	   src.apps.user.models.user_modelr
   "src.apps.user.schemas.user_schemasr   r   r   r   r   r   $src.apps.user.services.user_servicesr   r   r   r   r   r   r   r   r   src.core.dependenciesr   	src.utilsr   src.utils.guardr   $src.apps.base.schemas.response_modelr   routerpostr+   getDEFAULT_PER_PAGEMAX_PER_PAGEstrintr:   r>   putrA   rE   rH   boolrK   deleterM   rO    r;   r*   <module>re      sw   = = & " 1 
 
 
 )  , >	 R7LMAH !1 w  N B}oF '	/aA=A**!!$	 &/!"23  	 	  G* W &/!"23!  X m< &/!"23  = OM:")&/QaIb    ; LP &/!"23  Q &0DE)JKC-HI&/!"23				 		 		 F	 |_5)CD&/!"23  6 L7 )CD&/!"23	


 	
 	
 8
r;   