-- name: GetGlobalSettings :many SELECT * FROM global_settings; -- name: GetGlobalSetting :one SELECT * FROM global_settings WHERE key = $1; -- name: UpdateGlobalSetting :exec UPDATE global_settings SET value = $2, updated_at = CURRENT_TIMESTAMP WHERE key = $1; -- name: InsertCompanySetting :exec INSERT INTO company_settings (company_id, key, value) VALUES ($1, $2, $3) ON CONFLICT (company_id, key) DO UPDATE SET value = EXCLUDED.value; -- name: GetAllCompanySettings :many SELECT * FROM company_settings; -- name: GetCompanySetting :many SELECT * FROM company_settings WHERE company_id = $1; -- name: GetCompanySettingsByKey :many SELECT * FROM company_settings WHERE key = $1; -- name: GetOverrideSettings :many SELECT gs.*, COALESCE(cs.value, gs.value) AS value FROM global_settings gs LEFT JOIN company_settings cs ON cs.key = gs.key AND cs.company_id = $1; -- name: DeleteCompanySetting :exec DELETE FROM company_settings WHERE company_id = $1 AND key = $2; -- name: DeleteAllCompanySetting :exec DELETE FROM company_settings WHERE company_id = $1;