LocalData/Sources/LocalData/Models/MigrationContext.swift
Matt Bruce ac486a38bc Update Audit, Configuration, Migrations (+4 more)
Summary:
- Sources: Audit, Configuration, Migrations, Models, Protocols (+2 more)

Stats:
- 37 files changed, 256 insertions(+), 22 deletions(-)
2026-01-18 14:53:30 -06:00

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
}
}