Add AccountActivation model

This commit is contained in:
Son NK 2020-02-28 19:00:45 +07:00
parent 45178795f4
commit c025acc826
1 changed files with 19 additions and 1 deletions

View File

@ -6,7 +6,7 @@ import arrow
import bcrypt
from flask import url_for
from flask_login import UserMixin
from sqlalchemy import text, desc
from sqlalchemy import text, desc, CheckConstraint
from sqlalchemy_utils import ArrowType
from app import s3
@ -906,3 +906,21 @@ class Mailbox(db.Model, ModelMixin):
def __repr__(self):
return f"<Mailbox {self.email}>"
class AccountActivation(db.Model, ModelMixin):
"""contains code to activate the user account when they sign up on mobile"""
user_id = db.Column(
db.ForeignKey(User.id, ondelete="cascade"), nullable=False, unique=True
)
# the activation code is usually 6 digits
code = db.Column(db.String(10), unique=True, nullable=False)
# nb tries decrements each time user enters wrong code
tries = db.Column(db.Integer, default=3, nullable=False)
__table_args__ = (
CheckConstraint(tries >= 0, name="account_activation_tries_positive"),
{},
)