|
|
from flask_login import UserMixin |
|
|
from werkzeug.security import generate_password_hash, check_password_hash |
|
|
from datetime import datetime |
|
|
from create_app import db |
|
|
|
|
|
|
|
|
class User(UserMixin, db.Model): |
|
|
id = db.Column(db.Integer, primary_key=True) |
|
|
email = db.Column(db.String(100), unique=True, nullable=False) |
|
|
nickname = db.Column(db.String(100), unique=True, nullable=False) |
|
|
password_hash = db.Column(db.String(200)) |
|
|
|
|
|
def set_password(self, password): |
|
|
self.password_hash = generate_password_hash(password) |
|
|
|
|
|
def check_password(self, password): |
|
|
return check_password_hash(self.password_hash, password) |
|
|
|
|
|
def get_id(self): |
|
|
return str(self.id) |
|
|
|
|
|
@property |
|
|
def is_active(self): |
|
|
return True |
|
|
|
|
|
class History(db.Model): |
|
|
id = db.Column(db.Integer, primary_key=True) |
|
|
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) |
|
|
topic = db.Column(db.String(255), nullable=False) |
|
|
essay = db.Column(db.Text, nullable=False) |
|
|
created_at = db.Column(db.DateTime, default=datetime.utcnow) |
|
|
score_tr = db.Column(db.Integer, nullable=False) |
|
|
score_cc = db.Column(db.Integer, nullable=False) |
|
|
score_lr = db.Column(db.Integer, nullable=False) |
|
|
score_gra = db.Column(db.Integer, nullable=False) |
|
|
user = db.relationship('User', backref=db.backref('histories', lazy=True)) |