
    Ii                     X    d dl mZ d dlmZmZ d dlmZ  G d deej                        Zy)    )	UserMixin)generate_password_hashcheck_password_hash)dbc                   &   e Zd ZdZ ej
                  ej                  d      Z ej
                   ej                  d      dd      Z	 ej
                   ej                  d      dd      Z
 ej
                   ej                  d      d	      Z ej
                   ej                  d
      dd      Z ej                  dddd      Z ej                  dddd      Z ej                  ddddd      Zd Zd Zd Zd Zd Zed        Zy)UserloginT)primary_keyP   F)uniquenullablex      )r      operator)r   defaultAgenteuserzall, delete-orphan)backreflazycascadeChat)back_populatesr   r   AgentUserSharezAgentUserShare.user_idshared_with_user)foreign_keysr   r   r   c                 "    d| j                    dS )Nz<User >)usernameselfs    ./srv/www/ollama/chat-ollama/src/models/user.py__repr__zUser.__repr__   s    a((    c                     t        d| j                          t        |      | _        t        d| j                          y )Nu   Definindo senha para usuário zHash gerado: )printr   r   password)r!   r'   s     r"   set_passwordzUser.set_password   s5    .t}}o>?.x8dmm_-.r$   c                     t        d| j                          t        d| j                          t        | j                  |      }t        d|        |S )Nu    Verificando senha para usuário zHash armazenado: u   Resultado da verificação: )r&   r   r'   r   )r!   r'   results      r"   check_passwordzUser.check_password   sO    0@A!$--12$T]]H=,VH56r$   c                 ,    t        | j                        S )N)stridr    s    r"   get_idzUser.get_id!   s    477|r$   c                     d| _         y )N
superadmin)roler    s    r"   make_superadminzUser.make_superadmin$   s	     	r$   c                 .   | j                   j                  |      j                         }|rid|_        t        j
                  j                          ddlm}  |d|j                  d|j                  d|j                   d|j                   d	d 
       yy)N)emailr1   r   )send_discord_audit_logu   Promoção de superadminu   Usuáriou!   Usuário promovido a superadmin: z ())actionuser_idobject_type	object_iddetails
ip_addressTF)query	filter_byfirstr2   r   sessioncommitsrc.discord.discord_webhookr6   r.   r   r5   )clsr5   r   r6   s       r"   promote_to_superadminzUser.promote_to_superadmin'   s    yy"""/557$DIJJJ"1&'';DMM?"TZZLXYZ r$   N)__name__
__module____qualname____tablename__r   ColumnIntegerr.   Stringr   r5   r'   r2   relationshipagenteschatsshared_agent_linksr#   r(   r+   r/   r3   classmethodrE    r$   r"   r   r      s   M	2::4	0Bryy2teDHBIIibiinTEBEryy3%8H299YRYYr]UJGDboohTK_`GBOOF6NbcE()9H`j|  DH  Rf  g)/
!  r$   r   N)	flask_loginr   werkzeug.securityr   r   src.extensionsr   Modelr   rR   r$   r"   <module>rW      s     ! I 29bhh 2r$   