class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) token = db.Column(db.String(255), unique=True, nullable=False) first_name = db.Column(db.String(255)) last_name = db.Column(db.String(255)) email = db.Column(db.String(255), unique=True, nullable=False) password = db.Column(db.String(255)) mobile_number = db.Column(db.String(255)) address = db.Column(db.String(255)) last_login_at = db.Column(db.DateTime()) current_login_at = db.Column(db.DateTime()) last_login_ip = db.Column(db.String(100)) current_login_ip = db.Column(db.String(100)) login_count = db.Column(db.Integer) active = db.Column(db.Boolean()) fs_uniquifier = db.Column(db.String(255), unique=True, nullable=False) confirmed_at = db.Column(db.DateTime()) tf_totp_secret = db.Column(db.String(255)) tf_primary_method = db.Column(db.String(255)) tf_phone_number = db.Column(db.String(255)) roles = db.relationship('Role', secondary=roles_users, backref=db.backref('users', lazy='dynamic')) photo = db.Column(db.String()) photo_type = db.Column(db.String(255)) def __init__(self, **kwargs): super().__init__(**kwargs) self.token = secrets.token_urlsafe(8) @classmethod def from_email(cls, session, email): return session.query(cls).filter(cls.email == email).first() def __str__(self): return f'{self.email}'
class BronzeData(db.Model): __tablename__ = 'bronze_data' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False, unique=True) kyc_validated = db.Column(db.Boolean()) def __init__(self, user, kyc_validated): self.user_id = user.id self.kyc_validated = kyc_validated
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) first_name = db.Column(db.String(255)) last_name = db.Column(db.String(255)) email = db.Column(db.String(255), unique=True) password = db.Column(db.String(255)) active = db.Column(db.Boolean()) confirmed_at = db.Column(db.DateTime()) roles = db.relationship('Role', secondary=roles_users, backref=db.backref('users', lazy='dynamic')) @classmethod def from_email(cls, session, email): return session.query(cls).filter(cls.email == email).first() def __str__(self): return self.email
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(255), unique=True) password = db.Column(db.String(255)) active = db.Column(db.Boolean()) confirmed_at = db.Column(db.DateTime()) roles = db.relationship('Role', secondary=roles_users, backref=db.backref('users', lazy='dynamic')) bronze_data = db.relationship('BronzeData', cascade='delete', backref=db.backref('user'), uselist=False) def __init__(self, **kwargs): super().__init__(**kwargs) @classmethod def from_email(cls, session, email): return session.query(cls).filter(cls.email == email).first() def __str__(self): return '%s' % self.email
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) merchant_name = db.Column(db.String(255)) merchant_code = db.Column(db.String(255), unique=True) email = db.Column(db.String(255), unique=True) password = db.Column(db.String(255)) active = db.Column(db.Boolean()) confirmed_at = db.Column(db.DateTime()) roles = db.relationship('Role', secondary=roles_users, backref=db.backref('users', lazy='dynamic')) max_settlements_per_month = db.Column(db.Integer) settlement_fee = db.Column(db.Numeric) merchant_rate = db.Column(db.Numeric) customer_rate = db.Column(db.Numeric) wallet_address = db.Column(db.String(255)) def __init__(self, **kwargs): self.merchant_code = generate_key(4) super().__init__(**kwargs) def on_admin_created(self): self.merchant_code = generate_key(4) self.password = encrypt_password(generate_random_password(16)) self.confirmed_at = datetime.datetime.now() self.active = True @classmethod def from_email(cls, session, email): return session.query(cls).filter(cls.email == email).first() @classmethod def all(cls, session): return session.query(cls).all() def __str__(self): return '%s (%s)' % (self.merchant_code, self.merchant_name)