add ValueKeyboard as input for exercise values

This commit is contained in:
Felix Förtsch
2024-09-27 17:17:32 +02:00
parent 4a42fc6c33
commit 41a82f081a
11 changed files with 308 additions and 124 deletions
-1
View File
@@ -24,7 +24,6 @@ final class Workout: Nameable, Hashable {
// TODO: Expected Duration (learn from past workouts with ML and predict workout duration from that
@Relationship(deleteRule: .cascade) private var workoutItems: [WorkoutItem] = []
func getWorkoutItems() -> [WorkoutItem] {
return workoutItems.sorted { $0.position < $1.position }
+13 -7
View File
@@ -16,14 +16,20 @@ final class WorkoutItem: Nameable, Positionable {
var workout: Workout?
var workoutItemType: WorkoutItemType
enum WorkoutItemType: Codable {
// TODO: Add workout as WorkoutItemType (needs recursive dealing)
// case workout
case rest
case set
case workout
case exerciseWithReps
case exerciseWithDuration
case rest
}
var position: Int = 0
// TODO: Wondering if a SortDescriptor in the Model is useful?
// https://old.reddit.com/r/SwiftUI/comments/1fnvkud/extracting_the_creation_of_swiftdata_query_into/
// static var sorted: SortDescriptor<WorkoutItem> {
// SortDescriptor(\.position, order: .forward)
// }
var reps: Int = 0
var duration: Int = 0
@@ -90,11 +96,11 @@ extension WorkoutItem {
exercises.append(WorkoutItem(exercise: exercise))
}
// var set = WorkoutItem(workoutItems: [
// WorkoutItem(from: Exercise("Set item 1")),
// WorkoutItem(from: Exercise("Set item 2"))
// ])
// exercises.append(set)
// var set = WorkoutItem(workoutItems: [
// WorkoutItem(from: Exercise("Set item 1")),
// WorkoutItem(from: Exercise("Set item 2"))
// ])
// exercises.append(set)
return exercises
}()
+1
View File
@@ -12,6 +12,7 @@ import SwiftData
final class WorkoutSession: Nameable {
var id = UUID()
var name = ""
// The Workout is what *should* happen
var workout: Workout? {
didSet {
self.name = workout?.name ?? "Unknown Workout"