introduce WorkoutItem, refactor ExerciseTemplate to Exercise

This commit is contained in:
Felix Förtsch
2024-09-02 17:17:11 +02:00
parent 22b0ba372e
commit 8e1d3306b9
13 changed files with 149 additions and 142 deletions
+19 -34
View File
@@ -2,48 +2,33 @@
// Exercise.swift
// WorkoutsPlus
//
// Created by Felix Förtsch on 10.08.24.
// Created by Felix Förtsch on 25.08.24.
//
import Foundation
import SwiftData
@Model
final class Exercise: Identifiable {
var id = UUID()
var name: String
final class Exercise {
static var systemImage = "figure.run"
@Attribute(.unique) var name: String
var metric: String = "reps"
// var exerciseDescription: ExerciseDescription?
var workout: Workout?
var position: Int = 0
var timestamp: Date = Date.now
var exerciseTemplate: ExerciseTemplate? {
didSet {
self.name = exerciseTemplate?.name ?? "self.name"
}
}
var reps: Int = 0
init(_ reps: Int, _ exercise: String) {
self.name = exercise
self.reps = reps
self.exerciseTemplate = ExerciseTemplate(exercise)
init(_ name: String = "") {
self.name = name
}
// 8x Dips
init(from exerciseTemplate: ExerciseTemplate) {
self.name = exerciseTemplate.name
self.exerciseTemplate = exerciseTemplate
}
}
extension Exercise {
static let sampleData: [Exercise] = {
var exercises = [Exercise]()
for exerciseTemplate in ExerciseTemplate.sampleData {
exercises.append(Exercise(from: exerciseTemplate))
}
return exercises
}()
static let sampleData: [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")
]
}