// Shared ActivityAttributes definition. // NOTE: This file must belong to BOTH the DeepWorkTimer and TimeWidgetExtension targets. // Because this project uses Xcode 16 file system synchronized groups, a physical copy // lives in DeepWorkTimer/Models/ (for the app) and in TimeWidget/ (for the extension). // Keep both files identical. import ActivityKit import Foundation struct TimerAttributes: ActivityAttributes { // ContentState holds data the system can update while the activity is live. struct ContentState: Codable, Hashable { // The exact moment the timer expires — drives Text(timerInterval:) real-time countdown. var endDate: Date } // Fixed for the lifetime of this activity. var sessionName: String }