// // Exercise.swift // WorkoutsPlus // // Created by Felix Förtsch on 25.08.24. // // TODO: The model currently has an issue. I think An exercise always (!) has reps 1x 30s or 8x 1 0 kg Push-up. I stumbled upon the issue through the fact that bodyweight exercises can be loaded and for the user it makes sense that a Push-up is the same a Push-up with 10 kg load. // var equipment: [Equipment] // var isPartOfProgression: Bool = false // var type: ExerciseType = [.cardio, .flexibility, .strength, .balance] // var focus: ExerciseFocus? // Strength, Flexibility, Speed, etc // TODO: add a way to save suggested metrics (distance, reps, etc) import Foundation import SwiftData @Model final class Exercise: Nameable { static var systemImage = "figure.run" var id = UUID() var creationDate: Date = Date.now @Attribute(.unique) var name: String var exerciseDescription = "" var type: ExerciseType? var unit: ExerciseUnit? var isPartOfProgression = false var equipment: [Equipment] = [] init(_ name: String) { self.name = name } } extension Exercise { static let sampleDataRecommendedRoutine: [Exercise] = [ Exercise("Shoulder Band Warm-up"), Exercise("Squat Sky Reaches"), Exercise("GMB Wrist Prep"), Exercise("Dead Bugs"), Exercise("Pull-up Progression"), Exercise("Dip Progression"), Exercise("Squat Progression"), Exercise("Hinge Progression"), Exercise("Row Progression"), Exercise("Push-up Progression"), Exercise("Handstand Practice"), Exercise("Support Practice") ] static let sampleDataRings: [Exercise] = [ Exercise("Dips"), Exercise("Chin-ups"), Exercise("Push-ups"), Exercise("Inverted Rows"), Exercise("Hanging Knee Raises"), Exercise("Pistol Squats"), Exercise("Hanging Leg Curls"), Exercise("Sissy Squats") ] }