1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
from app import db, login_manager
# Represents an individual exercise
class Exercise(db.Model):
__tablename__ = 'exercises'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
sets = db.Column(db.Integer)
units = db.Column(db.Integer)
# Workout Relationship
workout_id = db.Column(db.Integer, db.ForeignKey('workouts.id'))
def __init__(self, name, sets, units):
self.name = name
self.sets = sets
self.unit = units
def __repr__(self):
return f'<Exercise {self.name} {self.sets}x{self.units}>'
# Represents a singular workout
class Workout(db.Model):
__tablename__ = 'workouts'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
# foreign keys
user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
# relationships
exercises = db.relationship("Exercise", backref='workout', lazy='dynamic')
def __init__(self, user, name, exercises):
self.name = name
self.user_id = user.id
# Create exercises
for exercise in exercises:
self.exercises.append(Exercise(exercise['name'], exercise['sets'], exercise['units']))
def __repr__(self):
return f'<Workout {self.name}>'
# Connects workouts to it's exercises
#class WorkoutExercise(db.Model):
# __table__ = 'workout_exercises'
# id = db.Column(db.Integer, primary_key=True)
# workout_id = db.Column(db.Integer, db.ForeignKey('workouts.id'))
# exercise_id = db.Column(db.Integer, db.ForeignKey('exercises.id'))
|