CREATE TABLE IF NOT EXISTS system_users ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL UNIQUE, uid INTEGER, gid INTEGER, groups TEXT NOT NULL DEFAULT '[]', smb_enabled INTEGER NOT NULL DEFAULT 0, disabled INTEGER NOT NULL DEFAULT 0, pending_password TEXT NOT NULL DEFAULT '', created_at TEXT NOT NULL DEFAULT (datetime('now')), updated_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS admins ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL UNIQUE, password_hash TEXT NOT NULL, created_at TEXT NOT NULL DEFAULT (datetime('now')), updated_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS settings ( key TEXT PRIMARY KEY, value TEXT NOT NULL ); CREATE TABLE IF NOT EXISTS samba_shares ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL UNIQUE, path TEXT NOT NULL, comment TEXT NOT NULL DEFAULT '', read_only INTEGER NOT NULL DEFAULT 0, guest_ok INTEGER NOT NULL DEFAULT 0, valid_users TEXT NOT NULL DEFAULT '[]', valid_groups TEXT NOT NULL DEFAULT '[]', created_at TEXT NOT NULL DEFAULT (datetime('now')), updated_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS nfs_exports ( id INTEGER PRIMARY KEY AUTOINCREMENT, path TEXT NOT NULL, clients TEXT NOT NULL DEFAULT '[]', options TEXT NOT NULL DEFAULT 'rw,sync,no_root_squash', created_at TEXT NOT NULL DEFAULT (datetime('now')), updated_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS deleted_system_users ( username TEXT PRIMARY KEY, marked_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS dirty_modules ( module TEXT PRIMARY KEY, marked_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS apply_log ( id INTEGER PRIMARY KEY AUTOINCREMENT, module TEXT NOT NULL, message TEXT NOT NULL, success INTEGER NOT NULL, created_at TEXT NOT NULL DEFAULT (datetime('now')) );