package store import ( "database/sql" "errors" "fmt" ) // GetSetting returns a settings value or empty string when missing. func (s *Store) GetSetting(key string) (string, error) { var value string err := s.db.QueryRow("SELECT value FROM settings WHERE key = ?", key).Scan(&value) if errors.Is(err, sql.ErrNoRows) { return "", nil } if err != nil { return "", fmt.Errorf("get setting %s: %w", key, err) } return value, nil } // SetSetting upserts a settings key. func (s *Store) SetSetting(key, value string) error { _, err := s.db.Exec( "INSERT INTO settings (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value", key, value, ) if err != nil { return fmt.Errorf("set setting %s: %w", key, err) } return nil }