Ë
    ˆuOjÖ  ã                   óÀ  — d dl mZmZmZ d dlmZ d dl­ d dl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mZmZ  e«       Zej5                  d	«       ee«      fd
edefd„«       Zej5                  d«       ee«      fd
edefd„«       Zej5                  d«       ee«      fd
edefd„«       Z ej5                  d«       ee«      fd
e!defd„«       Z"ejG                  d«       ee
«      fdefd„«       Z$ej5                  d«       ee«      fd
e%defd„«       Z&ej5                  d«       ee«      fd
edefd„«       Z'ej5                  d«       ee«      fd
e(defd„«       Z)d dl*m+Z+ d dl,m-Z- d dl.m/Z/m0Z0  G d„ d e+«      Z1 G d!„ d"e+«      Z2ej5                  d#«       ee«      fd$e3d
e1defd%„«       Z4ej5                  d&«       ee«      fd$e3d
e2defd'„«       Z5y())é    )Ú	APIRouterÚDependsÚHTTPException)ÚSession)Ú*)Úget_db)Úrequire_authÚAuthContext)ÚUser)Úaccount_auth_payload)Úforgot_password_serviceÚlogin_serviceÚrefresh_token_serviceÚreset_password_serviceÚsignup_serviceÚverify_forgot_otp_serviceÚverify_signup_otp_serviceÚuser_auth_payloadz/signupÚdataÚdbc                 ó   — t        | |«      S ©N)r   ©r   r   s     ú=/var/www/html/sergio/sergio-backend/app/routes/auth_routes.pyÚsignupr      s   € ô ˜$ Ó#Ð#ó    z/verify-otpc                 ó   — t        | |«      S r   )r   r   s     r   Úverify_signup_otpr      ó   € ô % T¨2Ó.Ð.r   z/loginc                 ó   — t        | |«      S r   )r   r   s     r   Úloginr!   '   s   € ô ˜˜rÓ"Ð"r   z/refreshc                 ó.   — t        | j                  |«      S r   )r   Úrefresh_tokenr   s     r   r#   r#   0   s   € ô
 ! ×!3Ñ!3°RÓ8Ð8r   z/meÚauthc                 óv   — | j                   �dt        | j                   «      iS dt        | j                  «      iS )Nr   )Úuserr   r   Úaccount)r$   s    r   Úget_mer(   8   s8   € ð ‡y�yÐØÔ)¨$¯)©)Ó4Ð5Ð5àÔ(¨¯©Ó6Ð7Ð7r   z/forgot-passwordc                 ó   — t        | |«      S r   )r   r   s     r   Úforgot_passwordr*   B   s   € ô # 4¨Ó,Ð,r   z/verify-forgot-otpc                 ó   — t        | |«      S r   )r   r   s     r   Úverify_forgot_otpr,   K   r   r   z/reset-passwordc                 ó   — t        | |«      S r   )r   r   s     r   Úreset_passwordr.   T   s   € ô " $¨Ó+Ð+r   )Ú	BaseModel)ÚOTPVerification)Úhash_passwordÚverify_passwordc                   ó   — e Zd ZU eed<   y)ÚVerifyOTPPathSchemaÚotpN©Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__© r   r   r4   r4   b   s   … Ø	„Hr   r4   c                   ó   — e Zd ZU eed<   y)ÚResetPasswordPathSchemaÚpasswordNr6   r<   r   r   r>   r>   e   s   … Ø„Mr   r>   z/verify-otp/{email}Úemailc                 ó  — |j                  t        «      j                  t        j                  | k(  «      j	                  «       }|st        dd«      ‚|j                  t        «      j                  t        j                  |j                  k(  t        j                  |j                  k(  t        j                  dk(  «      j	                  «       }|st        dd«      ‚d|_        |j                  dk(  rd|_        |j                  «        ddd	œS )
Né”  úUser not foundFé�  zInvalid OTPTr   zOTP verified successfully©ÚsuccessÚmessage)Úqueryr   Úfilterr@   Úfirstr   r0   Úuser_idÚidÚotp_coder5   Úis_usedÚpurposeÚis_verifiedÚcommit)r@   r   r   r&   r5   s        r   Úverify_otp_pathrR   h   sÜ   € ð �8‰8”D‹>× Ñ ¤§¡¨uÑ!4Ó5×;Ñ;Ó=€DÙÜ˜CÐ!1Ó2Ð2à
�(‰(”?Ó
#×
*Ñ
*Ü×Ñ 4§7¡7Ñ*Ü× Ñ  D§H¡HÑ,Ü×Ñ 5Ñ(ó÷ �eƒgð	 ñ Ü˜C Ó/Ð/à€C„KØ
‡{�{�hÒØˆÔà‡I�I„KàØ.ñð r   z/reset-password/{email}c                 óZ  — |j                  t        «      j                  t        j                  | k(  «      j	                  «       }|st        dd«      ‚t        |j                  |j                  «      rt        dd«      ‚t        |j                  «      |_        |j                  «        dddœS )NrB   rC   rD   z3New password cannot be the same as the old passwordTzPassword reset successfulrE   )
rH   r   rI   r@   rJ   r   r2   r?   r1   rQ   )r@   r   r   r&   s       r   Úreset_password_pathrT   …   sŠ   € ð �8‰8”D‹>× Ñ ¤§¡¨uÑ!4Ó5×;Ñ;Ó=€DÙÜ˜CÐ!1Ó2Ð2ä�t—}‘} d§m¡mÔ4Ü˜CÐ!VÓWÐWä! $§-¡-Ó0€D„MØ‡I�I„Kð Ø.ñð r   N)6Úfastapir   r   r   Úsqlalchemy.ormr   Úapp.schemas.auth_schemaÚapp.core.databaser   Úapp.core.auth_depsr	   r
   Úapp.models.user_modelr   Úapp.services.account_servicer   Úapp.services.auth_servicer   r   r   r   r   r   r   r   ÚrouterÚpostÚSignupSchemar   ÚVerifyOTPSchemar   ÚLoginSchemar!   ÚRefreshTokenSchemar#   Úgetr(   ÚForgotPasswordSchemar*   r,   ÚResetPasswordSchemar.   Úpydanticr/   Úapp.models.otp_modelr0   Úapp.core.securityr1   r2   r4   r>   r:   rR   rT   r<   r   r   Ú<module>ri      s€  ðß 5Ñ 5Ý "ä %å $ß 8Ý &Ý =÷	÷ 	ó 	ñ 
‹€ð ‡�ˆYÓÙ-4°V«_ñ $�ð $ 7ò $ó ð$ð
 ‡�ˆ]Óñ ˜&“/ñ/Ø
ð/àò/ó ð/ð ‡�ˆXÓñ ˜&“/ñ#Ø
ð#àò#ó ð#ð ‡�ˆZÓñ ˜&“/ñ9Ø
ð9àò9ó ð9ð ‡�ˆEÓá Ó-ñ8Ø
ò8ó ð8ð ‡�ÐÓ ñ ˜&“/ñ-Ø
ð-àò-ó !ð-ð ‡�Ð!Ó"ñ ˜&“/ñ/Ø
ð/àò/ó #ð/ð ‡�ÐÓñ ˜&“/ñ,Ø
ð,àò,ó  ð,õ Ý 0ß <ô˜)ô ô˜iô ð ‡�Ð"Ó#ñ ˜&“/ñØðà
ðð 	òó $ðð8 ‡�Ð&Ó'ñ ˜&“/ñØðà
!ðð 	òó (ñr   