Пример #1
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    content = db.Column(db.Text, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)

    def __repr__(self):
        return f"Post('{sef.title}, '{self.data_posted}')"
Пример #2
0
class Schedule(db.Model):
    id = db.Column(db.Integer, unique = True, nullable = False, primary_key = True)

    day_of_week = db.Column(db.String, unique = False, nullable = False)
    workout = db.Column(db.String, unique = False, nullable = False)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable = False)

    def __repr__(self):
        return f"Schedule('{self.user_id}', '{self.day_of_week}', '{self.workout}')"
Пример #3
0
class Profile(db.Model):
    id = db.Column(db.Integer, unique = True, nullable = False, primary_key = True)

    weight = db.Column(db.Float, unique = False, nullable = False, default = 0)
    height = db.Column(db.Text, unique = False, nullable = False, default = "0'0")

    goal = db.Column(db.String, unique = False, nullable = False, default = "None")

    age = db.Column(db.Integer, unique = False, nullable = False, default = 0)
    gender = db.Column(db.String, unique = False, nullable = False, default = "None")

    location = db.Column(db.String, unique = False, nullable = True, default = "None")

    quote = db.Column(db.String, unique = False, nullable = True, default = "")

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable = False)

    def __repr__(self):
        return f"Profile('{self.user_id}', '{self.weight}', '{self.height}', '{self.goal}', '{self.age}', '{self.gender}')"
Пример #4
0
class Meal(db.Model):
    id = db.Column(db.Integer, unique = True, nullable = False, primary_key = True)

    description = db.Column(db.String(500), nullable = True, default = "No Description Given")

    food_type = db.Column(db.String, nullable = False, default = "other.jpg")

    time = db.Column(db.DateTime, nullable = False, default = datetime.now)

    protein = db.Column(db.Integer, nullable = False, default = 0)
    carbs = db.Column(db.Integer, nullable = False, default = 0)
    fat = db.Column(db.Integer, nullable = False, default = 0)

    calories = db.Column(db.Integer, nullable = True, default = 0)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable = False)

    def __repr__(self):
        return f"Meal('{self.user_id}', '{self.description}', '{self.time}', '{self.protein}', '{self.carbs}', '{self.fat}', '{self.calories}')"
Пример #5
0
class Exercise(db.Model):
    id = db.Column(db.Integer, unique = True, nullable = False, primary_key = True)

    name = db.Column(db.String, unique = False, nullable = False)

    day = db.Column(db.String, unique = False, nullable = False)
    workout = db.Column(db.String, unique = False, nullable = False)

    num_sets = db.Column(db.Integer, unique = False, nullable = False)
    num_reps = db.Column(db.Integer, unique = False, nullable = False)

    difficulty = db.Column(db.String, unique = False, nullable = False, default = "None Given")

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable = False)

    def __repr__(self):
        return f"Exercise('{self.user_id}', '{self.name}', '{self.day}', '{self.workout}', '{self.num_sets}', '{self.num_reps}', '{self.difficulty}')"
Пример #6
0
class Macros(db.Model):
    id = db.Column(db.Integer, unique = True, nullable = False, primary_key = True)

    day = db.Column(db.String, nullable = False)

    # Daily macronutrient numbers the user sets.
    protein = db.Column(db.Integer, nullable = False, default = -1)
    carbs = db.Column(db.Integer, nullable = False, default = -1)
    fat = db.Column(db.Integer, nullable = False, default = -1)

    calories = db.Column(db.Integer, nullable = False, default = -1)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable = False)

    def __repr__(self):
        return f"Nutrition({self.user_id}', '{self.protein}', '{self.carbs}', '{self.fat}', '{self.calories}')"
Пример #7
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key = True)

    username = db.Column(db.String(20), unique = True, nullable = False)

    first_name = db.Column(db.String(50), unique = False, nullable = False)
    last_name = db.Column(db.String(50), unique = False, nullable = False)

    email = db.Column(db.String(120), unique = True, nullable = False)

    profile_image = db.Column(db.String(20), unique = False, nullable = False, default = 'default_image.jpg')

    password = db.Column(db.String(60), nullable = False)

    date_joined = db.Column(db.String, nullable = False, default = datetime.strftime(datetime.today(), "%b %d %Y"))

    profile = db.relationship('Profile', backref = 'user', lazy = True)

    meal = db.relationship('Meal', backref = 'user', lazy = True)

    posts = db.relationship('Post', backref='author', lazy=True)#lazy=True means db will load the data as neccessary in one go. 
    def __repr__(self):
        return f"User('{self.username}', '{self.email}', '{self.profile_image}', '{self.date_joined}')"

    def get_reset_token(self, expires_sec=1800): #create a secret key when reset user info
        s = Serializer(current_app.config['SECRET_KEY'])
        return s.dumps({'user_id': self.id}).decode('utf-8')

    @staticmethod  #no self parameter
    def verify_reset_token(token):
        s = Serializer(current_app.config['SECRET_KEY'])
        try:
            user_id = s.loads(token)['user_id']
        except:
            return None
        return User.query.get(user_id)