
    |yi3              
       6   S SK JrJrJrJrJrJr  S SKJrJ	r	J
r
  S SKrS SKrSSKJrJrJr  SSKJrJrJr  SSKJrJrJr  \" 5       r\R5                  SS	\S
9S\4S j5       r\R9                  SS\S
9\" S5      \" S5      4S\S\S\4S jj5       r\R5                  SS\S
9S\4S j5       r\R9                  SS\S
9\" S5      \" S5      \" S5      4S\S\S\S\4S jj5       r \R5                  SS\S
9S\4S j5       r!\R9                  SSS9S\4S j5       r"g)    )	APIRouterRequestForm
UploadFileHTTPExceptionDepends)HTMLResponseRedirectResponseJSONResponseN   )	templatesBASE_DIR_conn)rotate_sessionpwd_contextcurrent_user)get_user_by_emailcreate_user_upsert_satellites_empty/loginlogin)nameresponse_classrequestc                 >   #    [         R                  " SU S S.5      $ 7f)N
login.htmlr   error)r   TemplateResponse)r   s    (/home/mario/Escritorio/furbo/app/auth.py	login_getr!      s     %%lRV4WXXs   
login_post.emailpasswordc                   #    UR                  5       R                  5       n[        U5      nU(       a  [        R                  " X$S   5      (       d  [
        R                  " SU SS.5      $ [        U 5        [        US   5      U R                  S'   US   U R                  S'   US   S:X  d  US	:X  a  [        U R                  S5      S
S9$ US   S:X  a  [        U R                  S5      S
S9$ [        U R                  S5      S
S9$ 7f)Npassword_hashr   u   Credenciales inválidasr   iduser_idroleadminadmin@admin.es/  urlstatus_codedocente	dashboard)striplowerr   r   verifyr   r   r   intsessionr
   url_for)r   r#   r$   
email_normusers        r    r"   r"      s     $$&JZ(D{))(4IJJ)),GVo8pqq7!$T$ZGOOI"6lGOOFF|w*0@"@GOOG$<#NN	f	"GOOI$>CPPGOOK$@cRRs   DDz	/registerregisterc                 t   #    [        U 5      nU=(       d    SSSS.n[        R                  " SU S US.5      $ 7f)N r   r#   phoneregister.htmlr   r   r9   r   r   r   )r   mectx_users      r    register_getrD      s<     	g	B;b2;H%%o7UYck7lmms   68register_postr   c           	      \  #    UR                  5       R                  5       n[        U5      (       a-  [        R                  " SU SUR                  5       USS.S.5      $ [        U5      S:  a-  [        R                  " SU SUR                  5       USS.S.5      $ [        UR                  5       XCSS	9  [        U5      n[        US
   5      U R                  S'   US   U R                  S'   US   S:X  d  US:X  a  [        U R                  S5      SS9$ [        U R                  S5      SS9$ 7f)Nr?   zEse email ya exister<   r=   r@      u'   La contraseña debe tener 6+ caracteresalumno)r)   r'   r(   r)   r*   r+   r,   r-   r1   )r2   r3   r   r   r   lenr   r5   r6   r
   r7   )r   r   r#   r$   r8   r9   s         r    rE   rE   %   s:    $$&J$$))*?RVR\R\R^is  A  JB  C
 	
 8}q))*Sfjfpfpfr  ~H  SU  ^V  W
 	
 

jBZ(D!$T$ZGOOI"6lGOOFF|w*0@"@GOOG$<#NNGOOK$@cRRs   D*D,z/academy-registeracademy_register_getc                 R   #    [        U 5      n[        R                  " SXS.5      $ 7f)Nzacademy-register.html)r   r9   rA   )r   rB   s     r    rJ   rJ   ;   s+     	g	B%%( s   %'academy_register_post)r   c                   ^ #    U R                  5       I S h  vN nUR                  S5      =(       d    SR                  5       R                  5       nUR                  S5      =(       d    SR                  5       nUR                  S5      =(       d    SnUR                  S5      =(       d    SR                  5       nUR                  S5      =(       d    SR                  5       nU(       d
  [	        SSS	9eU(       a  [        U5      S
:  a
  [	        SSS	9eU(       a  [        U5      S
:  a
  [	        SSS	9eU(       a  [        U5      S
:  a
  [	        SSS	9eU(       a  [        U5      S:  a
  [	        SSS	9eUR                  S5      (       d
  [	        SSS	9eUR                  S5      (       d
  [	        SSS	9eUR                  S5      (       d
  [	        SSS	9eUR                  S5      (       d
  [	        SSS	9eUR                  S5      (       d
  [	        SSS	9eUR                  S5      (       d
  [	        SSS	9eUR                  S5      (       d
  [	        SSS	9eUR                  S5      (       d
  [	        SSS	9eUR                  S 5      (       d
  [	        SS!S	9eUR                  S"5      (       d
  [	        SS#S	9eUR                  S$5      (       d
  [	        SS%S	9eUR                  S&5      (       d
  [	        SS'S	9eUR                  S(5      (       d
  [	        SS)S	9eUR                  S*5      (       d
  [	        SS+S	9eUR                  S,5      (       d
  [	        SS-S	9eUR                  S.5      (       d
  [	        SS/S	9eUR                  S05      (       d
  [	        SS1S	9eUR                  S25      (       d
  [	        SS3S	9eUR                  S45      (       d
  [	        SS5S	9eUR                  S65      (       d
  [	        SS7S	9eUR                  S85      (       d
  [	        SS9S	9eUR                  S:5      (       d
  [	        SS;S	9eUR                  S<5      (       d
  [	        SS=S	9eUR                  S>5      (       d
  [	        SS?S	9eUR                  S@5      (       d
  [	        SSAS	9eUR                  SB5      (       d
  [	        SSCS	9eUR                  SD5      nU(       d
  [	        SSES	9eUSF:X  a   UR                  SG5      (       d
  [	        SSHS	9eUR                  SI5      (       d
  [	        SSJS	9eUR                  SK5      (       d
  [	        SSLS	9e[        U5      nU(       a
  [	        SMSNS	9eS n	S n
UR                  SO5      n[        USP5      =(       a    [        USQ5      nU(       at  UR                  (       ac   UR                  5       I S h  vN n	U	(       aC  [        R                  R                  UR                  5      SR   R                  5       =(       d    SSn
[        UR                  5       X$SUXVSV9  [        U5      n[!        USW   5      nS nU	(       a[  U
(       aT   ["        SX-  SY-  nUR%                  SZSZS[9  S\U U
 3nUU-  n['        US]5       nUR)                  U	5        S S S 5        S^U 3n0 m UR+                  5        H3  u  nn[-        U[.        5      (       a  M  US`;  d  M%  [1        U5      T U'   M5     U 4Sa jnU" S&Sb5      U" S5      U" SSc5      U" S*5      U=(       d	    U" SOSd5      Se.nU" SSfSg5      U" S5      U" SS"Sh5      U" S 5      U" S65      U" S85      U" S.5      U" SBSiSj5      Sk.nU" SD5      U" SG5      U" SK5      U" SI5      U" S@5      U" Sl5      U" S<5      Sm.nU" S45      U" S25      U" Sn5      U" So5      U" Sp5      Sq.nU" S5      U" SSr5      U" S$Ss5      U" S(St5      Su.nU" S,Sv5      U" S>5      U" S:Sw5      U" SxSy5      Sz.n[3        5        n[5        UU5        [7        S{ UR9                  5        5       5      (       a_  S|R;                  UR=                  5        Vs/ s H  nU S}U S~3PM     sn5      nUR?                  SU S3/ UR9                  5       QUP75        [7        S UR9                  5        5       5      (       a_  S|R;                  UR=                  5        Vs/ s H  nU S}U S~3PM     sn5      nUR?                  SU S3/ UR9                  5       QUP75        [7        S UR9                  5        5       5      (       a_  S|R;                  UR=                  5        Vs/ s H  nU S}U S~3PM     sn5      nUR?                  SU S3/ UR9                  5       QUP75        [7        S UR9                  5        5       5      (       a_  S|R;                  UR=                  5        Vs/ s H  nU S}U S~3PM     sn5      nUR?                  SU S3/ UR9                  5       QUP75        [7        S UR9                  5        5       5      (       a_  S|R;                  UR=                  5        Vs/ s H  nU S}U S~3PM     sn5      nUR?                  SU S3/ UR9                  5       QUP75        [7        S UR9                  5        5       5      (       a_  S|R;                  UR=                  5        Vs/ s H  nU S}U S~3PM     sn5      nUR?                  SU S3/ UR9                  5       QUP75        URA                  5         S S S 5        [C        SZSS.5      $  GN= GN! [         a  n[        STU 35         S nAGNpS nAff = f! , (       d  f       GN= f! [         a  n[        S_U 35         S nAGNS nAff = fs  snf s  snf s  snf s  snf s  snf s  snf ! , (       d  f       N= f7f)Nr#   r<   r   r$   	firstNamelastNamei  zEl email es obligatorio.)r/   detail   zIndica tu nombre.zIndica tus apellidos.u(   Indica tu nombre (mínimo 2 caracteres).rG   u0   La contraseña debe tener al menos 6 caracteres.dnizEl DNI es obligatorio.	birthDatez&La fecha de nacimiento es obligatoria.genderzEl sexo es obligatorio.
occupationzIndica si estudias o trabajas.
studyPlaceu   Indica dónde estudias.categoryu   Selecciona una categoría.currentTeamzIndica tu equipo actual.currentPositionu   Indica tu posición actual.dominantFootzIndica tu pierna dominante.preferredPositionu   Indica tu posición preferida.
parentNamez#El nombre del tutor es obligatorio.r>   u   El teléfono es obligatorio.parentEmailz"El email del tutor es obligatorio.cityzLa ciudad es obligatoria.foundUsu   Indica cómo nos conociste.trainingTypez Indica el tipo de entrenamiento.
commitmentzConfirma tu compromiso.videoPermissionu   Indica el permiso de vídeo.whatsappContentzIndica preferencia de WhatsApp.	strengthszIndica tus virtudes.
weaknesseszIndica tus defectos/mejoras.nervesConfidencez!Responde sobre nervios/confianza.
discomfortzResponde sobre malestar.	enjoymentu$   Responde sobre disfrute/motivación.recoveryu   Responde sobre recuperación.injurieszIndica historial de lesiones.physicalWorku$   Indica si has hecho trabajo físico.siphysicalWorkDetailsu>   Si has hecho trabajo físico, detalla dónde y cuánto tiempo.alcoholzIndica consumo de alcohol.smokingzIndica consumo de tabaco.i  u3   Ya existe un usuario con ese email. Inicia sesión.playerPhotofilenamereadr   z.jpgzERROR: Failed to read photo: rH   )r)   
first_name	last_namer'   staticuploadsT)parentsexist_okuser_wbz/static/uploads/z%ERROR: Failed to save photo to disk: Nr<   nullc                  N   > U  H  nTR                  U5      nUS;  d  M  Us  $    g )Nr{   )get)keyskvaldatas      r    pick#academy_register_post.<locals>.pick   s-    A((1+C,,
      whatsapp
birth_dateavatar)r>   rR   r   r^   r   teamclubpositioninjuryHistoryinjury_history)r   rW   r   dominant_footrd   re   training_typer   	chestPain)physical_workphysical_work_detailsro   rn   ri   
chest_painrg   privacyAcceptancedataConfirmation	agreement)whatsapp_contentvideo_permissionprivacy_acceptancedata_confirmationr   study_placeparent_nameparent_email)rU   r   r   r   found_usnerves_confidenceadditionalCommentsadditional_comments)r   rh   r   r   c              3   (   #    U  H  oS Lv   M
     g 7fN .0vs     r    	<genexpr>(academy_register_post.<locals>.<genexpr>        <&;}&;   z, z=COALESCE(?, )zUPDATE user_profile SET z WHERE user_id=?c              3   (   #    U  H  oS Lv   M
     g 7fr   r   r   s     r    r   r           ;&:}&:r   zUPDATE user_sports SET c              3   (   #    U  H  oS Lv   M
     g 7fr   r   r   s     r    r   r      r   r   zUPDATE user_health SET c              3   (   #    U  H  oS Lv   M
     g 7fr   r   r   s     r    r   r      r   r   zUPDATE user_consent SET c              3   (   #    U  H  oS Lv   M
     g 7fr   r   r   s     r    r   r           >&=}&=r   zUPDATE user_guardians SET c              3   (   #    U  H  oS Lv   M
     g 7fr   r   r   s     r    r   r      r   r   zUPDATE user_marketing SET r   )okredirect)"formr~   r2   r3   r   rI   r   hasattrrq   rr   ospathsplitext	Exceptionprintr   r5   r   mkdiropenwriteitems
isinstancer   strr   r   anyvaluesjoinr   executecommitr   )!r   r   r#   r   r$   rs   rt   r   existingphoto_content	photo_extplayer_photo	is_uploader9   r(   avatar_pathuploads_dirrq   	file_pathfr   r   r   profile_valssports_valshealth_valsconsent_valsguardians_valsmarketing_valsconnsetsr   s!                                   @r    rL   rL   C   s    DXXg$"++-335EXXf$"++-D$*H((;'-2446J*%+224I4NOOZ1,4GHHI*4KLL3t9q=4^__s8}q(4fgg 88E??-CH`"aa88K  #Nv(w"w88H]sKd%ee88L!!3Oo)p#p88L!!3Oh)i#i88J}Mi'j!j88M""-CPj*k$k88%&&mTq.r(r88N##=SQn+o%o88'((#Vv0w*w88L!!3Ot)u#u88GMcJh$ii88M""-CPt*u$u88F=SId#ee88ImLi&j j88N##=SQs+t%t88L!!3Oh)i#i88%&&mTr.s(s88%&&mTu.v(v88K  #Nd(e"e88L!!3Om)n#n88&''}Ux/y)y88L!!3Oi)j#j88K  #Nt(u"u88J}Ml'm!m88J}Ml'm!mHH^,M#Fl mmTXX.C%D%D4tuu88ImLh&i i88ImLg&h h 'H4ijjMI88M*Lj1SglF6SI\**	7"."3"3"55MGG,,\-B-BCAFLLNXRX	
 

eHiU#D$t*oG K		?"X-	9KdT:wi	{3H#h.Ii&!& ',XJ7K D

1a$$&&!fDG	 
 gz*E{;5V>mX!>L ]FF3$*,?Ln-+&<(n-z?<LM	K n-!%&;!<	?	?$;'<(K !!23 !23"#67!"45+&L <(L-8L-8]N;	N J/+&!"46IJ#$8:OP	N 
D w/<l&9&9&;<<<99|?P?P?RS?R!=15?RSTDLL3D69IJLmlNaNaNcLmelLmn;k&8&8&:;;;99{?O?O?QR?Q!=15?QRSDLL24&8HIKk[M_M_MaKkcjKkl;k&8&8&:;;;99{?O?O?QR?Q!=15?QRSDLL24&8HIKk[M_M_MaKkcjKkl<l&9&9&;<<<99|?P?P?RS?R!=15?RSTDLL3D69IJLmlNaNaNcLmelLmn>n&;&;&=>>>99~?R?R?TU?T!=15?TUVDLL5dV;KLNqP^PePePgNqipNqr>n&;&;&=>>>99~?R?R?TU?T!=15?TUVDLL5dV;KLNqP^PePePgNqipNqr) 
, t:;;[  J 6  	71!566	7  '&  	?9!=>>	?~ T S S T V V% 
s  o'mVo'&m 9m:Am Ao'4n  n n 3o'D3o'	Aon8
*A2on=
.A2o o
2A2o$o
6A2o(o
:A2o,o
>A o>o'm 
m=$m82o'8m==o' 
n
n 
n5n0*o'0n55o'8o
o$ o')#fastapir   r   r   r   r   r   fastapi.responsesr	   r
   r   r   secretsdatabaser   r   r   depsr   r   r   crudr   r   r   routerr~   r!   postr   r"   rD   rE   rJ   rL   r   r   r    <module>r      s   P P J J 	  0 0 ; ; J J	H7<@YW Y AY XLF48ItTWy Sg Sc S S GS KjFn n Gn
 [|L6:3idSViimnqir S S S Scf S MS* &<\Z  [  '>?n< n< @n<r   