o
    	,h                  
   @   s  d dl mZ d dl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 ddlmZmZmZmZmZ d d	lmZmZ e Zejd
ddeeeefdede	defddZejdddeeeefde	defddZejdddeefdeee f de	fddZejdeddeeeefde	defddZejdddeeeefde	defddZejd ddeeeefdede	defd!d"Z ed#eeeefded$ede	defd%d&Z!ed'eeeefdede	defd(d)Z"d*S )+    )	Annotated)	APIRouterBackgroundTasksDepends)OAuth2PasswordRequestForm)Session)service)get_db   )ForgotPasswordRequest
UserCreateUserPassUpdateUserResponseVerifyOTPRequest)get_current_userJWTPayloadSchemaz/userT)response_model_exclude_nonerequestdbtokenc                       t ||| I d H S N)r   UserServicecreate_userr   r   r    r   ./var/www/html/RetailAPI/app/api/user/router.pyr         r   z
/user/jsonc                    s   t | |}| I d H S r   )r   r   create_json)r   r   new_create_jsonr   r   r   r      s   r   z/user/logincredentialsc                    s   t j| |I d H S r   )r   r   
user_login)r    r   r   r   r   
login_user   s   r"   z
/user-info)response_modelr   c                       t | | I d H S r   )r   r   get_demo_userr   r   r   r   r   r%         r%   z/user/logoutc                    r$   r   )r   r   logoutr&   r   r   r   logout_user    r'   r)   z/user_change_pass/updatec                    r   r   )r   r   update_passr   r   r   r   update_admin$   r   r+   z/forgot-passwordbackground_tasksc                    s   t ||| |I d H S r   )r   r   forgot_password_service)r   r,   r   r   r   r   r   forgot_password0   s   r.   z/reset-passwordc                 C   s   t ||| S r   )r   r   reset_password_servicer   r   r   r   reset_password4   s   r0   N)#typingr   fastapir   r   r   fastapi.securityr   sqlalchemy.ormr   app.api.userr   app.database.main.mysqlr	   schemasr   r   r   r   r   app.dependency.authanticationr   r   user_routerpostr   r   r"   getr%   r)   putr+   r.   r0   r   r   r   r   <module>   s2    &"&""&**