package models import "database/sql" const siteSettingsID = 1 type SiteSettings struct { AllowSignup bool } func EnsureSiteSettings(db *sql.DB) error { _, err := db.Exec(` CREATE TABLE IF NOT EXISTS site_settings ( id INT PRIMARY KEY, allow_signup BOOLEAN NOT NULL DEFAULT TRUE, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )`) if err != nil { return err } _, err = db.Exec(` INSERT INTO site_settings (id, allow_signup) VALUES (?, TRUE) ON DUPLICATE KEY UPDATE id = id `, siteSettingsID) return err } func GetSiteSettings(db *sql.DB) (*SiteSettings, error) { settings := &SiteSettings{} err := db.QueryRow("SELECT allow_signup FROM site_settings WHERE id = ?", siteSettingsID).Scan(&settings.AllowSignup) if err != nil { return nil, err } return settings, nil } func SetAllowSignup(db *sql.DB, allowSignup bool) error { _, err := db.Exec("UPDATE site_settings SET allow_signup = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?", allowSignup, siteSettingsID) return err }