package store import "git.tukangketik.id/swanadiva/hostkeeper/v2/internal/model" type SettingsStore struct { cfg model.AppConfig } func NewSettingsStore() *SettingsStore { s := &SettingsStore{cfg: defaultConfig()} mu.RLock() readFile("settings.json", &s.cfg) mu.RUnlock() return s } func (s *SettingsStore) Get() model.AppConfig { mu.RLock() defer mu.RUnlock() return s.cfg } func (s *SettingsStore) Update(cfg model.AppConfig) { mu.Lock() defer mu.Unlock() s.cfg = cfg writeFile("settings.json", &s.cfg) } func defaultConfig() model.AppConfig { return model.AppConfig{ Theme: "light", FontSize: 14, Scrollback: 5000, AutoLock: 5, Keepalive: true, CopyOnSelect: true, BellEnabled: false, AutoReconnect: true, BlinkCursor: false, } }