Files
workoutsplus/WorkoutsPlus/Models/WorkoutSession.swift
T

59 lines
1.3 KiB
Swift

//
// WorkoutSession.swift
// WorkoutsPlus
//
// Created by Felix Förtsch on 07.09.24.
//
import Foundation
import SwiftData
@Model
final class WorkoutSession: Nameable {
var id = UUID()
var name = ""
var workout: Workout? {
didSet {
self.name = workout?.name ?? ""
}
}
// Time
var creationDate = Date.now
private var startDate: Date? = nil
private var stopDate: Date? = nil
private var duration: TimeInterval? = nil
// Exercise Progress
var currentExercise = 0
func isActive() -> Bool {
return startDate != nil && stopDate == nil
}
func startWorkoutSession() {
self.startDate = Date.now
}
func stopWorkoutSession() {
guard let startDate else { return }
self.stopDate = Date.now
self.duration = self.stopDate!.timeIntervalSince(startDate)
}
func elapsedTime(since startDate: Date) -> String {
let elapsedTime = Date.now.timeIntervalSince(startDate)
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.hour, .minute, .second]
formatter.unitsStyle = .positional
return formatter.string(from: elapsedTime) ?? "00:00:00"
}
// var isCompleted: Bool
// var isPaused: Bool
// var isCancelled: Bool
// var isDeleted: Bool
// var isSynced: Bool
init () { }
}