30 lines
713 B
Swift
30 lines
713 B
Swift
import Foundation
|
|
import SwiftData
|
|
|
|
@Model
|
|
final class Workout {
|
|
var start: Date = Date()
|
|
var end: Date?
|
|
var status: WorkoutStatus? = WorkoutStatus.notStarted
|
|
|
|
@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 == .completed, let endDate = end {
|
|
return "\(start.formattedDate())—\(endDate.formattedDate())"
|
|
} else {
|
|
return start.formattedDate()
|
|
}
|
|
}
|
|
}
|