import Foundation import SwiftData enum TrackingRecordType: String, Codable { case timerSession case countLog } @Model final class TrackingRecord { var id: UUID var recordType: TrackingRecordType var startTime: Date? var endTime: Date? var timestamp: Date? var duration: TimeInterval var createdAt: Date // Inverse is declared on TaskItem.trackingRecords var task: TaskItem? var isRunning: Bool { recordType == .timerSession && startTime != nil && endTime == nil } init( id: UUID = UUID(), task: TaskItem? = nil, recordType: TrackingRecordType, startTime: Date? = nil, endTime: Date? = nil, timestamp: Date? = nil, duration: TimeInterval = 0, createdAt: Date = .now ) { self.id = id self.task = task self.recordType = recordType self.startTime = startTime self.endTime = endTime self.timestamp = timestamp self.duration = duration self.createdAt = createdAt } }