Ë
    +—Vj  ã                   ó4  — d dl Z e j                  j                  d d«       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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  eddg¬«      Z ee«      fdedefd„Z G d„ de«      ZejA                  ddd¬«       ee«      fdededefd„«       Z!ejA                  dd¬«      d„ «       Z"ejG                  dd¬«       ee«      fd efd!„«       Z$ejA                  d"d#d$d%¬&«       ee«      fdefd'„«       Z%y)(é    Nz/var/www/html/metafoliadorv2)Ú	APIRouterÚRequestÚDependsÚHTTPException)ÚJSONResponseÚRedirectResponse)ÚSession)Ú	BaseModelÚField)ÚOptional)Úget_main_db)ÚMainUser)ÚCustomer)Úmain_hash_passwordÚmain_verify_passwordÚmain_create_access_tokenÚmain_decode_access_tokenz/main/api/authz	main-auth)ÚprefixÚtagsÚrequestÚdbc                 óH  — | j                   j                  d«      }|st        dd¬«      ‚t        |«      }|st        dd¬«      ‚|j	                  t
        «      j                  t
        j                  |j                  d«      k(  t
        j                  dk(  «      j                  «       }|sw|j	                  t
        «      j                  t
        j                  |j                  d«      k(  t
        j                  dk(  «      j                  «       }|rd	nd
}t        d|¬«      ‚|S )NÚmain_access_tokené‘  zNo autenticado)Ústatus_codeÚdetailzToken invalidoÚuser_idTFzCuenta desactivadazUsuario no encontrado)
ÚcookiesÚgetr   r   Úqueryr   ÚfilterÚidÚactiveÚfirst)r   r   ÚtokenÚpayloadÚuserÚinactiver   s          ú1/var/www/html/metafoliadorv2/app/api/main/auth.pyÚget_main_current_userr*      só   € Ø�O‰O×ÑÐ 3Ó4€EÙÜ¨Ð4DÔEÐEÜ& uÓ-€GÙÜ¨Ð4DÔEÐEØ�8‰8”HÓ×$Ñ$Ü�‰�w—{‘{ 9Ó-Ñ-Ü�‰˜4Ñó÷ �eƒgð 	ñ Ø—8‘8œHÓ%×,Ñ,Ü�K‰K˜7Ÿ;™; yÓ1Ñ1Ü�O‰O˜uÑ$ó
÷ ‰%‹'ð 	ñ *2Ñ%Ð7NˆÜ¨°FÔ;Ð;Ø€Kó    c                   ó"   — e Zd ZU eed<   eed<   y)ÚMainLoginRequestÚemailÚpasswordN)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__© r+   r)   r-   r-   ,   s   … ØƒJØ„Mr+   r-   z/loginu   Iniciar sesiÃ³n principalz7Autentica al usuario administrador del panel principal.)ÚsummaryÚdescriptionÚbodyc              ƒ   óê  K  — |j                  t        «      j                  t        j                  | j                  k(  t        j                  dk(  «      j                  «       }|r t        | j                  |j                  «      st        ddid¬«      S t        |j                  |j                  dœ«      }t        d|j                  |j                  dœdœ«      }|j                  d	|ddd
d¬«       |S ­w)NTÚerrorzCredenciales invalidasr   )r   )r   r.   )Únamer.   )Úokr'   r   Úlaxi€p  )ÚkeyÚvalueÚhttponlyÚsecureÚsamesiteÚmax_age)r    r   r!   r.   r#   r$   r   r/   Úpassword_hashr   r   r"   r;   Ú
set_cookie)r8   r   r   r'   r%   Úresponses         r)   Ú
main_loginrG   1   sÊ   è ø€ à�8‰8”HÓ×$Ñ$¤X§^¡^°t·z±zÑ%AÄ8Ç?Á?ÐVZÑCZÓ[×aÑaÓc€DÙÔ+¨D¯M©M¸4×;MÑ;MÔNÜ˜WÐ&>Ð?ÈSÔQÐQä$°·±À4Ç:Á:Ñ%NÓO€EÜ 4¸$¿)¹)ÈdÏjÉjÑ1YÑZÓ[€HØ×ÑØØØØØØð ô ð €Oùs   ‚C1C3z/logoutu   Cerrar sesiÃ³n principal)r6   c               ƒ   óJ   K  — t        ddi«      } | j                  d«       | S ­w)Nr<   Tr   )r   Údelete_cookie)rF   s    r)   Úmain_logoutrJ   D   s(   è ø€ ä˜T 4˜LÓ)€HØ×ÑÐ.Ô/Ø€Oùs   ‚!#z/mezPerfil del usuario principalÚcurrent_userc              ƒ   óR   K  — | j                   | j                  | j                  dœS ­w)N©r"   r;   r.   rM   )rK   s    r)   Úmain_merN   K   s+   è ø€ ð �o‰oØ×!Ñ!Ø×#Ñ#ñð ùs   ‚%'z/seedéÉ   zCrear admin inicialzTCrea el usuario administrador inicial del panel principal si no existe. Idempotente.)r   r6   r7   c              ƒ   óh  K  — | j                  t        «      j                  t        j                  dk(  «      j	                  «       }|rdd|j                  dœS t        dt        d«      dd¬«      }| j                  |«       | j                  «        | j                  |«       dd|j                  dœS ­w)	Nzadmin@metafoliador.comTzEl admin ya existe)r<   Úmessager.   z	Admin123!ÚAdministrador)r.   rD   r;   r#   zAdmin creado exitosamente)	r    r   r!   r.   r$   r   ÚaddÚcommitÚrefresh)r   ÚexistingÚadmins      r)   Úmain_seed_adminrX   T   s–   è ø€ à�x‰xœÓ!×(Ñ(¬¯©Ð;SÑ)SÓT×ZÑZÓ\€HÙØÐ';ÀhÇnÁnÑUÐUÜØ&Ü(¨Ó5ØØô	€Eð ‡F�Fˆ5„MØ‡I�I„KØ‡J�JˆuÔØÐ#>ÈÏÉÑUÐUùs   ‚B0B2)&ÚsysÚpathÚinsertÚfastapir   r   r   r   Úfastapi.responsesr   r   Úsqlalchemy.ormr	   Úpydanticr
   r   Útypingr   Úapp.models.main_databaser   Úapp.models.main_userr   Úapp.models.main_customerr   Úapp.services.main_auth_servicer   r   r   r   Úrouterr*   r-   ÚpostrG   rJ   r   rN   rX   r5   r+   r)   ú<module>rg      s\  ðÛ 
Ø ‡�‡��Ð1Ô 2ç >Ó >ß <Ý "ß %Ý å 0Ý )Ý -÷ó ñ 
Ð*°+°Ô	?€ñ ;BÀ+Ó:Nñ  7ð °ó ô*�yô ð
 ‡�ˆXÐ:ð  IB€ó  CÙMTÐU`ÓMañ Ð+ð °gð À7ò ó Cðð$ ‡�ˆYÐ :€Ó;ñó <ðð ‡�ˆEÐ9€Ó:Ù+2Ð3HÓ+Iñ  ò ó ;ðð ‡�ˆW #Ð/Dð  Si€ó  jÙ(/°Ó(<ñ V˜gò Vó jñVr+   