add ActiveWorkoutSession logic, refactor Home, add additional sample data, add isDebug
This commit is contained in:
@@ -9,27 +9,50 @@ import Foundation
|
||||
import SwiftData
|
||||
|
||||
@Model
|
||||
final class WorkoutSession {
|
||||
var workout: Workout
|
||||
|
||||
// Time
|
||||
var startDate = Date.now
|
||||
var stopDate: Date? = nil
|
||||
var duration: TimeInterval? = nil
|
||||
func stopWorkout() {
|
||||
self.stopDate = Date.now
|
||||
if let stopDate = stopDate {
|
||||
self.duration = stopDate.timeIntervalSince(startDate)
|
||||
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 (workout: Workout) {
|
||||
self.workout = workout
|
||||
}
|
||||
init () { }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user