from . import db from flask_login import UserMixin from datetime import datetime class User(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) password = db.Column(db.String(200), nullable=False) class LoginIP(db.Model): id = db.Column(db.Integer, primary_key=True) ip = db.Column(db.String(45), unique=True, nullable=False) count = db.Column(db.Integer, default=0, nullable=False) blocked_until = db.Column(db.DateTime, nullable=True) last_attempt = db.Column(db.DateTime, default=datetime.utcnow, nullable=False) failed_attempts = db.Column(db.Integer, default=0, nullable=False) locked_until = db.Column(db.DateTime, nullable=True) last_failed = db.Column(db.DateTime, nullable=True)