Files
workoutsplus/WorkoutsPlus/Workout/WorkoutItem.swift
T

67 lines
1.2 KiB
Swift

//
// Exercise.swift
// WorkoutsPlus
//
// Created by Felix Förtsch on 10.08.24.
//
import Foundation
import SwiftData
@Model
final class WorkoutItem: Identifiable {
var id = UUID()
var name: String
var workoutItemType: WorkoutItemType
var workout: Workout?
var children: [WorkoutItem] = []
var position: Int = 0
var exercise: Exercise? {
didSet {
self.name = exercise?.name ?? "self.name"
}
}
var reps: Int = 0
init(_ reps: Int, _ exercise: String) {
self.workoutItemType = .exercise
self.name = exercise
self.reps = reps
self.exercise = Exercise(exercise)
}
init(from exercise: Exercise) {
self.workoutItemType = .exercise
self.name = exercise.name
self.exercise = exercise
}
func addChild(_ child: WorkoutItem) {
self.children.append(child)
}
}
extension WorkoutItem {
enum WorkoutItemType: Codable {
case set
case workout
case exercise
}
}
extension WorkoutItem {
static let sampleData: [WorkoutItem] = {
var exercises = [WorkoutItem]()
for exercise in Exercise.sampleData {
exercises.append(WorkoutItem(from: exercise))
}
return exercises
}()
}