Summary: - Sources: update Audit, Configuration, Migrations (+4 more) Stats: - 37 files changed, 256 insertions(+), 22 deletions(-)
31 lines
1.2 KiB
Swift
31 lines
1.2 KiB
Swift
import Foundation
|
|
|
|
/// Context information available for conditional migrations.
|
|
public struct MigrationContext: Sendable {
|
|
/// Current app version string.
|
|
public let appVersion: String
|
|
/// Device metadata for platform checks.
|
|
public let deviceInfo: DeviceInfo
|
|
/// Previously recorded migration timestamps keyed by storage key name.
|
|
public let migrationHistory: [String: Date]
|
|
/// Caller-provided preferences that may influence migration behavior.
|
|
public let userPreferences: [String: AnyCodable]
|
|
/// System information for conditional checks.
|
|
public let systemInfo: SystemInfo
|
|
|
|
/// Creates a migration context with optional overrides.
|
|
public init(
|
|
appVersion: String = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "Unknown",
|
|
deviceInfo: DeviceInfo = .current,
|
|
migrationHistory: [String: Date] = [:],
|
|
userPreferences: [String: AnyCodable] = [:],
|
|
systemInfo: SystemInfo = .current
|
|
) {
|
|
self.appVersion = appVersion
|
|
self.deviceInfo = deviceInfo
|
|
self.migrationHistory = migrationHistory
|
|
self.userPreferences = userPreferences
|
|
self.systemInfo = systemInfo
|
|
}
|
|
}
|