
    V
h                     `   S SK Jr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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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#  \" 5       r$\$RK                  S\S9\" \RL                  5      4S\S\S\RN                  4S jj5       r(\$RK                  S5      \" \RL                  5      4S\S\S\RN                  4S jj5       r)\$RK                  S5      \" \RL                  5      \" \5      4S\S\S\RN                  S\4S jj5       r*\$RW                  S\S9S SSS\" \RL                  5      \" \5      4S\,S\,S\\-   S\\.   S\RN                  S\4S jj5       r/\$RW                  S\S9S SSS\" \RL                  5      \" \5      4S\,S\,S\\-   S\\.   S\RN                  S\4S jj5       r/\$RW                  S \S9\" \RL                  5      4S!\-S\RN                  4S" jj5       r0\$Rc                  S \S9\" \RL                  5      4S!\-S#\S\RN                  4S$ jj5       r2\$Rg                  S \S9\" S%S&S'9\" \RL                  5      4S!\-S\RN                  4S( jj5       r4\$RK                  S)5      \" \RL                  5      4S*\S\RN                  4S+ jj5       r5g),    )	APIRouterDependsHTTPExceptionBackgroundTasksPathRequest)JSONResponse)ListOptionalN)database   )UserUserBase	UserLogin
UserUpdateUserResponseListEmailActionResetPasswordRequest)create_access_tokenget_current_userdetails)str_to_objectid)create_user_servicesend_email_verification_serviceget_users_serviceread_user_serviceupdate_user_servicedelete_user_servicereset_password_service/)response_modeluserbackground_tasksdbc                 t    [        XU5      n[        SUS   S.S9nUR                  SSUS    3SS	S	S
SSS9  U$ )z
Creates a new user after verifying email code and then sends a welcome email.
Returns a JSONResponse with a secure JWT set as a cookie.
zUser created successfully	user_data)messager!   )contentAuthorizationzBearer tokenTi  r   None)keyvaluehttponlymax_ageexpirespathsecuresamesite)r   r	   
set_cookie)r!   r"   r#   resultresponses        GC:\Suresh\moveshuttle\MDcreated\moveengine\app\v1\routers\saas\users.pycreate_user_endpointr7      se     !<F0KU[\gUh$ijHw()  	 O    z/emailverification/email_actionc                     [        XU5      $ zU
Sends a verification code via email for signup, forgot password, or invite actions.
r   )r9   r"   r#   s      r6   send_email_verificationr=   4   s     +<2NNr8   z/invite/current_userc                     [        XX#5      $ r;   r<   )r9   r"   r#   r>   s       r6   send_inviter@   @   s     +<2\\r8   z/list/
   skiplimitq	is_activec           	      @    UR                  S5      n[        X`XX4U5      $ )0
Returns a list of users for the given account.

account_id)getr   rB   rC   rD   rE   r#   r>   rH   s          r6   	get_usersrK   L   s%     !!,/JZuUUr8   z
/list/all/c           	      "    Sn[        X`XX4U5      $ )rG   all)r   rJ   s          r6   rK   rK   \   s     JZuUUr8   z
/{user_id}user_idc                 6    [        X5      nUc
  [        SSS9eU$ )z"
Returns user details by user ID.
  User not foundstatus_codedetail)r   r   rN   r#   r!   s      r6   	read_userrV   l   s&     W)D|4DEEKr8   r%   c                 8    [        XU5      nUc
  [        SSS9eU$ )z
Updates user information.
rP   zUser not found after updaterR   )r   r   )rN   r%   r#   updated_users       r6   update_userrY   y   s*     'w2>L4QRRr8   .zThe ID of the user)descriptionc                 6    [        X5      nUc
  [        SSS9eU$ )z
Deletes a user by ID.
rP   rQ   rR   )r   r   rU   s      r6   delete_userr\      s&     w+D|4DEEKr8   z/reset-password/request_bodyc                     [        X5      $ )z=
Resets a user's password after verifying the provided code.
)r   )r]   r#   s     r6   reset_passwordr_      s     ",33r8   )6fastapir   r   r   r   r   r   fastapi.responsesr	   typingr
   r   jsonapp.dbr   models.saas.usersmodelr   r   r   r   r   r   r   dependencies.authr   r   libraries.objectr   services.saas.usersr   r   r   r   r   r   r   routerpostget_mongo_dbMongoDBr7   r=   r@   rI   intstrboolrK   rV   putrY   deleter\   r_    r8   r6   <module>rs      s   U U * !     N /   
S& #8#8#89
% 	 '0 "# #8#8#89OO%O 	O $O Z #8#8#89 !89		]	]%	] 		] 		] 	] H%56 $"8#8#89 !89V
VV }V ~	V
 	V V 7V L)9: $"8#8#89 !89V
VV }V ~	V
 	V V ;V L. #8#8#89


 /
 L. #8#8#89 	 / |D1)=>"8#8#89


 2
   #8#8#894&44 !4r8   