import Foundation import Observation @Observable final class AppPreferences { // Calendar.weekday constants: 1 = Sunday, 2 = Monday … 7 = Saturday var themeMode: ThemeMode = ThemeMode(rawValue: UserDefaults.standard.string(forKey: "pref.themeMode") ?? "system") ?? .system { didSet { UserDefaults.standard.set(themeMode.rawValue, forKey: "pref.themeMode") } } var languageCode: String = UserDefaults.standard.string(forKey: "pref.languageCode") ?? "ko" { didSet { UserDefaults.standard.set(languageCode, forKey: "pref.languageCode") } } var weekStartDay: Int = (UserDefaults.standard.object(forKey: "pref.weekStartDay") as? Int) ?? 2 { didSet { UserDefaults.standard.set(weekStartDay, forKey: "pref.weekStartDay") } } var dayStartHour: Int = (UserDefaults.standard.object(forKey: "pref.dayStartHour") as? Int) ?? 0 { didSet { UserDefaults.standard.set(dayStartHour, forKey: "pref.dayStartHour") } } var dayStartMinute: Int = (UserDefaults.standard.object(forKey: "pref.dayStartMinute") as? Int) ?? 0 { didSet { UserDefaults.standard.set(dayStartMinute, forKey: "pref.dayStartMinute") } } }