package models import "database/sql" type ConfigStore struct { DB *sql.DB } func (s *ConfigStore) GetAll() (map[string]string, error) { rows, err := s.DB.Query(`SELECT key, value FROM site_config`) if err != nil { return nil, err } defer rows.Close() config := make(map[string]string) for rows.Next() { var k, v string if err := rows.Scan(&k, &v); err != nil { return nil, err } config[k] = v } return config, rows.Err() } func (s *ConfigStore) Get(key string) (string, error) { var value string err := s.DB.QueryRow(`SELECT value FROM site_config WHERE key = ?`, key).Scan(&value) if err == sql.ErrNoRows { return "", nil } return value, err } func (s *ConfigStore) Set(key, value string) error { _, err := s.DB.Exec(`INSERT INTO site_config (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = ?`, key, value, value) return err }