package settings import "database/sql" type SettingsService struct { db *sql.DB } func NewSettingsService(db *sql.DB) *SettingsService { return &SettingsService{db: db} } func (s *SettingsService) Get(key string) (string, error) { var value string err := s.db.QueryRow("SELECT value FROM settings WHERE key = ?", key).Scan(&value) if err == sql.ErrNoRows { return "", nil } return value, err } func (s *SettingsService) GetDefault(key, defaultValue string) string { val, err := s.Get(key) if err != nil || val == "" { return defaultValue } return val } func (s *SettingsService) Set(key, value string) error { _, err := s.db.Exec( "INSERT INTO settings (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = ?", key, value, value, ) return err } func (s *SettingsService) Delete(key string) error { _, err := s.db.Exec("DELETE FROM settings WHERE key = ?", key) return err }