import { getDb } from '../database/database'; import { localTimestamp } from '../utils/time'; export interface SystemConfigEntry { key: string; value: string; description?: string; updated_at?: string; } export function getAllSystemConfigs(): SystemConfigEntry[] { const db = getDb(); return db.prepare('SELECT key, value, description, updated_at FROM system_configs ORDER BY key').all() as SystemConfigEntry[]; } export function getSystemConfig(key: string): string | null { const db = getDb(); const row = db.prepare('SELECT value FROM system_configs WHERE key = ?').get(key) as { value: string } | undefined; return row?.value ?? null; } export function updateSystemConfig(key: string, value: string): void { const db = getDb(); db.prepare( "INSERT INTO system_configs (key, value, updated_at, description) VALUES (?, ?, ?, '') ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = excluded.updated_at" ).run(key, value, localTimestamp()); } export function updateSystemConfigs(entries: { key: string; value: string }[]): void { const db = getDb(); const upsert = db.prepare( "INSERT INTO system_configs (key, value, updated_at, description) VALUES (?, ?, ?, '') ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = excluded.updated_at" ); const tx = db.transaction((items: { key: string; value: string }[]) => { for (const item of items) { upsert.run(item.key, item.value, localTimestamp()); } }); tx(entries); }