
    ;yi                         S SK r S SKrS SKJr  SSKJrJr  \" S/SS9rS\	4S	 jr
S
\4S jrS
\4S jr  SS\	S\	S\	S\	S\	S-  S\	S-  4S jjrS\4S jrS\4S jrS
\S\	4S jrg)    N)CryptContext   )_conn_table_columnsbcryptauto)schemes
deprecatedemailc                     [        5        nUR                  SU 45      nUR                  5       sS S S 5        $ ! , (       d  f       g = f)Na"  
            SELECT u.id,u.name,u.email,u.password_hash,u.created_at,u.role,u.first_name,u.last_name,
                   p.phone,p.avatar,p.city,p.dni,p.birth_date,
                   s.team,s.category,s.position,s.dominant_foot,s.strengths,s.weaknesses,s.injury_history,s.training_type,
                   h.physical_work,h.physical_work_details,h.smoking,h.alcohol,h.recovery,h.chest_pain,h.discomfort,
                   c.whatsapp_content,c.video_permission,c.privacy_acceptance,c.data_confirmation,c.agreement,
                   g.occupation,g.study_place,g.parent_name,g.parent_email,
                   m.found_us,m.enjoyment,m.nerves_confidence,m.additional_comments,
                   COALESCE(f.matricula_eur,0.0) AS matricula_eur,
                   CAST(ROUND(COALESCE(f.matricula_eur,0.0)*100) AS INTEGER) AS matricula_cents
            FROM users u
            LEFT JOIN user_profile p   ON p.user_id=u.id
            LEFT JOIN user_sports s    ON s.user_id=u.id
            LEFT JOIN user_health h    ON h.user_id=u.id
            LEFT JOIN user_consent c   ON c.user_id=u.id
            LEFT JOIN user_guardians g ON g.user_id=u.id
            LEFT JOIN user_marketing m ON m.user_id=u.id
            LEFT JOIN user_finance f   ON f.user_id=u.id
            WHERE LOWER(u.email)=LOWER(?)
        r   executefetchone)r   conncurs      (/home/mario/Escritorio/furbo/app/crud.pyget_user_by_emailr      s8    	Dll & X'( ||~+ 
	   #8
Auser_idc                     [        5        nUR                  SU 45      nUR                  5       sS S S 5        $ ! , (       d  f       g = f)Na  
            SELECT u.id,u.name,u.email,u.password_hash,u.created_at,u.role,u.first_name,u.last_name,
                   p.phone,p.avatar,p.city,p.dni,p.birth_date,
                   s.team,s.category,s.position,s.dominant_foot,s.strengths,s.weaknesses,s.injury_history,s.training_type,
                   h.physical_work,h.physical_work_details,h.smoking,h.alcohol,h.recovery,h.chest_pain,h.discomfort,
                   c.whatsapp_content,c.video_permission,c.privacy_acceptance,c.data_confirmation,c.agreement,
                   g.occupation,g.study_place,g.parent_name,g.parent_email,
                   m.found_us,m.enjoyment,m.nerves_confidence,m.additional_comments,
                   COALESCE(f.matricula_eur,0.0) AS matricula_eur,
                   CAST(ROUND(COALESCE(f.matricula_eur,0.0)*100) AS INTEGER) AS matricula_cents
            FROM users u
            LEFT JOIN user_profile p   ON p.user_id=u.id
            LEFT JOIN user_sports s    ON s.user_id=u.id
            LEFT JOIN user_health h    ON h.user_id=u.id
            LEFT JOIN user_consent c   ON c.user_id=u.id
            LEFT JOIN user_guardians g ON g.user_id=u.id
            LEFT JOIN user_marketing m ON m.user_id=u.id
            LEFT JOIN user_finance f   ON f.user_id=u.id
            WHERE u.id=?
        r   )r   r   r   s      r   get_user_by_idr   1   s8    	Dll & Z'( ||~+ 
r   c                    U R                  SU45        U R                  SU45        U R                  SU45        U R                  SU45        U R                  SU45        U R                  SU45        U R                  SU45        g )Nz6INSERT OR IGNORE INTO user_profile(user_id) VALUES (?)z5INSERT OR IGNORE INTO user_sports(user_id) VALUES (?)z5INSERT OR IGNORE INTO user_health(user_id) VALUES (?)z6INSERT OR IGNORE INTO user_consent(user_id) VALUES (?)z8INSERT OR IGNORE INTO user_guardians(user_id) VALUES (?)z8INSERT OR IGNORE INTO user_marketing(user_id) VALUES (?)zJINSERT OR IGNORE INTO user_finance(user_id, matricula_eur) VALUES (?, 0.0))r   )r   r   s     r   _upsert_satellites_emptyr   I   s{    LLIG:VLLH7*ULLH7*ULLIG:VLLKgZXLLKgZXLL]`g_ij    namepasswordrole
first_name	last_namec                    [         R                  U5      n[        5        n[        US5      n[        R
                  R                  5       R                  5       n	SU;   a  SU;   a  UR                  SXXiX4U45      n
OUR                  SXXiU45      n
U
R                  n[        X{5        UR                  5         S S S 5        g ! , (       d  f       g = f)Nusersr   r   znINSERT INTO users (name, email, password_hash, created_at, role, first_name, last_name) VALUES (?,?,?,?,?,?,?)zSINSERT INTO users (name, email, password_hash, created_at, role) VALUES (?,?,?,?,?))pwd_contexthashr   r   dtdatetimeutcnow	isoformatr   	lastrowidr   commit)r   r   r   r   r   r   password_hashr   cols
created_atr   uids               r   create_userr.   R   s    $$X.M	DdG,[['')335
4K4$7,,)m9UC ,,em>C mm +! 
s   BC
Creturnc                      [        5        n U R                  S5      R                  5       n[        US   =(       d    S5      sS S S 5        $ ! , (       d  f       g = f)Nz2SELECT COUNT(1) AS c FROM users WHERE role='admin'cr   )r   r   r   int)r   rows     r   count_adminsr4   g   s;    	DllOPYY[3s8=q! 
s   6A
Ac                 $    [        U S   5      S:H  $ )Nr   admin)str)mes    r   is_adminr9   l   s    r&z?g%%r   c                     [        5        nUR                  SX45        UR                  5         S S S 5        g ! , (       d  f       g = f)Nz&UPDATE users SET role = ? WHERE id = ?)r   r   r)   )r   r   r   s      r   set_user_roler;   o   s-    	D=O 
s	   $8
A)alumnoNN)sqlite3r%   r$   passlib.contextr   databaser   r   r"   r7   r   r2   r   r   r.   r4   boolr9   r;    r   r   <module>rB      s      ( +& H:&AS 0C 0kC k CKGKc #  C $J:=**"c "
&D &3 c r   