create ER diagram, refactor to conform to diagram, simplify session management

This commit is contained in:
Felix Förtsch
2024-10-17 14:41:14 +02:00
parent b7f5caf9dd
commit 97ecbcc6f4
23 changed files with 394 additions and 226 deletions
+11 -9
View File
@@ -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
}
}