create ER diagram, refactor to conform to diagram, simplify session management
This commit is contained in:
@@ -41,9 +41,10 @@ final class WorkoutItem: Nameable, Positionable {
|
||||
var position: Int = 0
|
||||
var set: [WorkoutItem] = []
|
||||
|
||||
var exercise: Exercise? // Do Push-up | Run Marathon
|
||||
var reps: Int // 8 times | 1 time
|
||||
var value: Double? // With 10 | 42,187
|
||||
// Exercise has to be optional to allow Rest and Set to be a WorkoutItem (without being an Exercise).
|
||||
var exerciseData: Exercise? // Do Push-up | Run Marathon
|
||||
var plannedReps: Int // 8 times | 1 time
|
||||
var plannedValue: Double // With 10 | 42,187
|
||||
var metric: ExerciseMetric? // kg (weight) | km (distance)
|
||||
|
||||
enum WorkoutItemType: Codable {
|
||||
@@ -53,15 +54,15 @@ final class WorkoutItem: Nameable, Positionable {
|
||||
}
|
||||
|
||||
init(_ exercise: Exercise) {
|
||||
self.exercise = exercise
|
||||
self.exerciseData = exercise
|
||||
self.workoutItemType = .exercise
|
||||
|
||||
// Push-up
|
||||
self.name = exercise.name
|
||||
// 8x
|
||||
self.reps = 1
|
||||
self.plannedReps = 1
|
||||
// 0
|
||||
self.value = 0
|
||||
self.plannedValue = 0
|
||||
// kg
|
||||
self.metric = exercise.metric
|
||||
}
|
||||
@@ -69,7 +70,8 @@ final class WorkoutItem: Nameable, Positionable {
|
||||
init(set: [WorkoutItem] = []) {
|
||||
self.workoutItemType = .set
|
||||
self.name = "Set"
|
||||
self.reps = 3
|
||||
self.plannedReps = 3
|
||||
self.plannedValue = 0
|
||||
set.forEach(addChild)
|
||||
}
|
||||
|
||||
@@ -82,8 +84,8 @@ final class WorkoutItem: Nameable, Positionable {
|
||||
init(rest: Double) {
|
||||
self.workoutItemType = .rest
|
||||
self.name = "Rest"
|
||||
self.reps = 1
|
||||
self.value = rest
|
||||
self.plannedReps = 1
|
||||
self.plannedValue = rest
|
||||
self.metric = .time
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user