summaryrefslogtreecommitdiff
path: root/app/tables/workout.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/tables/workout.py')
-rw-r--r--app/tables/workout.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/app/tables/workout.py b/app/tables/workout.py
index 81f9a68..b86a3db 100644
--- a/app/tables/workout.py
+++ b/app/tables/workout.py
@@ -4,20 +4,38 @@ from app import db, login_manager
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)
+ reps = db.Column(db.Integer)
+ # Workout Relationship
+ workout_id = db.Column(db.Integer, db.ForeignKey('workouts.id'))
+
+ def __init__(self, name, sets, reps):
+ self.name = name
+ self.sets = sets
+ self.reps = reps
+
+ def __repr__(self):
+ return f'<Exercise {self.name} {self.sets}x{self.reps}>'
# 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)
-
- # User Relationship
+ # 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['reps']))
+
def __repr__(self):
return f'<Workout {self.name}>'