Files
Termind/Frameworks/TermindPersistence/PersistentNotificationPreferences.swift

19 lines
612 B
Swift

// SPDX-FileCopyrightText: 2026 Kaede Akino
// SPDX-License-Identifier: GPL-3.0-only
import Foundation
import SwiftData
import TermindDomain
@Model
public final class PersistentNotificationPreferences {
@Attribute(.unique) public var key = "default"
public var data = Data()
public init(_ value: NotificationPreferences) throws { try apply(value) }
public func load() throws -> NotificationPreferences {
try JSONDecoder().decode(NotificationPreferences.self, from: data)
}
public func apply(_ value: NotificationPreferences) throws { data = try JSONEncoder().encode(value) }
}