
    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S\" \RL                  5      \" \5      SSS4
S\,S\,S\\-   S\\-   S\\-   S\RN                  S\S\\-   S\\-   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S0 jj5       r5g)1    )	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=   5   s     +<2NNr8   z/invite/current_userc                     [        XX#5      $ r;   r<   )r9   r"   r#   r>   s       r6   send_inviter@   B   s     +<2\\r8   z/list/
   skiplimitqstatusreferred_account_idcreated_date_fromcreated_date_torolec
                 D    UR                  S5      n
[        XXX4XVXxU	5      $ )0
Returns a list of users for the given account.

account_id)getr   )rB   rC   rD   rE   rF   r#   r>   rG   rH   rI   rL   s              r6   	get_usersrN   N   s6      !!,/JZuVXgx  KO  P  Pr8   z
/list/all/	is_activec           	      "    Sn[        X`XX4U5      $ )rK   all)r   )rB   rC   rD   rO   r#   r>   rL   s          r6   rN   rN   b   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   rR   r#   r!   s      r6   	read_userrZ   r   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.
rT   zUser not found after updaterV   )r   r   )rR   r%   r#   updated_users       r6   update_userr]      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.
rT   rU   rV   )r   r   rY   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   )ra   r#   s     r6   reset_passwordrc      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@   rM   intstrrN   boolrZ   putr]   deleter`   rc    r8   r6   <module>rw      s   U U * !     N /   
S& #8#8#89
% 	 '2 "# #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'+%)P
PP }P SM	P
 "#P 	P P  }P c]P 3-P 7P& 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   