52 lines
1.2 KiB
Swift
52 lines
1.2 KiB
Swift
import Foundation
|
|
import SwiftData
|
|
|
|
@Model
|
|
final class Workout {
|
|
var start: Date = Date()
|
|
var end: Date?
|
|
var status: Int = 1
|
|
// var status: WorkoutStatus = WorkoutStatus.notStarted
|
|
|
|
//case notStarted = 1
|
|
//case inProgress = 2
|
|
//case completed = 3
|
|
//case skipped = 4
|
|
|
|
|
|
@Relationship(deleteRule: .nullify)
|
|
var split: Split?
|
|
|
|
@Relationship(deleteRule: .cascade, inverse: \WorkoutLog.workout)
|
|
var logs: [WorkoutLog]? = []
|
|
|
|
init(start: Date, end: Date, split: Split?) {
|
|
self.start = start
|
|
self.end = end
|
|
self.split = split
|
|
}
|
|
|
|
var label: String {
|
|
if status == 3, let endDate = end {
|
|
// if status == .completed, let endDate = end {
|
|
return "\(start.formattedDate())—\(endDate.formattedDate())"
|
|
} else {
|
|
return start.formattedDate()
|
|
}
|
|
}
|
|
|
|
var statusName: String {
|
|
if status == 1 {
|
|
return "Not Started"
|
|
} else if status == 2 {
|
|
return "In Progress"
|
|
} else if status == 3 {
|
|
return "Completed"
|
|
} else if status == 4 {
|
|
return "Skipped"
|
|
} else {
|
|
return "In progress"
|
|
}
|
|
}
|
|
}
|