import Foundation /// Vom App-Target geschrieben, vom Widget-Target gelesen — über die App Group /// `group.app.banyaro.ios` geteilt. Bewusst in beiden Targets identisch /// dupliziert (statt Shared/-pbxproj-Handarbeit); JSON-kompatibel. struct HomeWidgetData: Codable { var dogName: String var photoJPEG: Data? var nextAppointment: String? var diaryCount: Int? var updatedAt: Date } enum HomeWidgetStore { static let appGroup = "group.app.banyaro.ios" static let key = "homeWidgetData" static func save(_ data: HomeWidgetData) { guard let defaults = UserDefaults(suiteName: appGroup), let encoded = try? JSONEncoder().encode(data) else { return } defaults.set(encoded, forKey: key) } static func load() -> HomeWidgetData? { guard let defaults = UserDefaults(suiteName: appGroup), let data = defaults.data(forKey: key) else { return nil } return try? JSONDecoder().decode(HomeWidgetData.self, from: data) } static func clear() { UserDefaults(suiteName: appGroup)?.removeObject(forKey: key) } }