
    h	                     d    d dl mZ d dlmZ d dlmZmZ d dlmZ  G d dej                  e      Z	y)    )db)	UserMixin)generate_password_hashcheck_password_hash)datetimec                   (   e Zd ZdZ ej
                  ej                  d      Z ej
                   ej                  d      ddd      Z	 ej
                   ej                  d      ddd      Z
 ej
                   ej                  d      d	      Z ej
                   ej                  d
dd      dd
      Z ej
                  ej                  ej                   d      Z ej
                  ej                  d	      Z ej
                  ej&                  d      Z ej
                   ej                  d      dd      Z ej,                  dddd      Z ej,                  dddd      Zd Zd Zed        Zed        Zed        Zd Zy)UserusersT)primary_key@   F)uniquenullableindexx      )r   studentteacheradmin)r   default)r   r   )r   zdefault-avatar.png)r   r   Teacheruserzall, delete-orphan)backrefuselistcascadeStudentc                 $    t        |      | _        y)u   设置密码哈希N)r   password_hashselfpasswords      /var/www/html/app/models/user.pyset_passwordzUser.set_password   s    3H=    c                 .    t        | j                  |      S )u   验证密码)r   r   r   s     r!   check_passwordzUser.check_password   s    "4#5#5x@@r#   c                      | j                   dk(  S )Nr   roler   s    r!   
is_studentzUser.is_student        yyI%%r#   c                      | j                   dk(  S )Nr   r'   r)   s    r!   
is_teacherzUser.is_teacher$   r+   r#   c                      | j                   dk(  S )Nr   r'   r)   s    r!   is_adminzUser.is_admin(   s    yyG##r#   c                 <    d| j                    d| j                   dS )Nz<User z (z)>)usernamer(   r)   s    r!   __repr__zUser.__repr__,   s    b266r#   N) __name__
__module____qualname____tablename__r   ColumnIntegeridStringr1   emailr   Enumr(   DateTimer   utcnow
created_at
last_loginBoolean	is_activeavatarrelationshipteacher_profilestudent_profiler"   r%   propertyr*   r-   r/   r2    r#   r!   r	   r	      s   M	2::4	0Bryy2te4PHBIIibiinTENEBIIibiinu=M299WRWWY	7;eU^_D2;;tLJ2;;6J		"**d3IRYYyryy~/CdSF &booiXlmO%booiXlmO>A & & & & $ $7r#   r	   N)
app.extensionsr   flask_loginr   werkzeug.securityr   r   r   Modelr	   rH   r#   r!   <module>rM      s#     ! I &7288Y &7r#   