42 lines
994 B
Swift
42 lines
994 B
Swift
//
|
|
// WorkoutSessionItem.swift
|
|
// WorkoutsPlus
|
|
//
|
|
// Created by Felix Förtsch on 15.10.24.
|
|
//
|
|
|
|
import Foundation
|
|
import SwiftData
|
|
|
|
@Model
|
|
final class WorkoutSessionItem: Nameable, Positionable {
|
|
var id = UUID()
|
|
var position: Int
|
|
var name: String
|
|
|
|
var workoutSession: WorkoutSession
|
|
|
|
var plannedReps: Int // 8 times | 1 time
|
|
var plannedValue: Double // With 10 | 42,187
|
|
var unit: ExerciseUnit?
|
|
var metric: ExerciseType? // kg (weight) | km (distance)
|
|
|
|
var actualReps: Int?
|
|
var actualValue: Double?
|
|
|
|
var startDate: Date?
|
|
var stopDate: Date?
|
|
func isCompleted() -> Bool { stopDate != nil }
|
|
|
|
init(workoutSession: WorkoutSession, planned: WorkoutItem) {
|
|
self.workoutSession = workoutSession
|
|
self.name = planned.exercise.name
|
|
self.position = planned.position
|
|
self.plannedReps = planned.plannedReps
|
|
self.plannedValue = planned.plannedValue
|
|
}
|
|
|
|
func start() { startDate = .now }
|
|
func stop() { stopDate = .now }
|
|
}
|