#if os(iOS)
import ActivityKit
import Foundation

/// Shared between the main app (to drive the activity lifecycle) and the
/// DownloadWidgetExtension (to render the Lock Screen / Dynamic Island UI).
/// Both targets must compile this exact definition — keep them in sync.
struct DownloadActivityAttributes: ActivityAttributes {
    /// Item title set once at activity start; never changes during the download.
    let itemTitle: String

    struct ContentState: Codable, Hashable {
        /// Overall fraction across all tracks (0.0 – 1.0).
        var progress: Double
        /// Total bytes written to disk so far, shown as "X MB downloaded".
        var bytesDownloaded: Int64
    }
}
#endif
