import { Database } from "bun:sqlite"; export function initDb(path: string): Database { const db = new Database(path, { create: true }); db.exec("PRAGMA journal_mode = WAL"); db.exec("PRAGMA foreign_keys = ON"); db.exec(` CREATE TABLE IF NOT EXISTS instances ( id TEXT PRIMARY KEY, slug TEXT UNIQUE NOT NULL, display_name TEXT NOT NULL, primary_domain TEXT NOT NULL, fallback_domain TEXT NOT NULL, owner TEXT NOT NULL, status TEXT NOT NULL DEFAULT 'provisioning', compose_path TEXT, created_at TEXT DEFAULT (datetime('now')), updated_at TEXT DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS provision_log ( id INTEGER PRIMARY KEY AUTOINCREMENT, instance_id TEXT NOT NULL REFERENCES instances(id), action TEXT NOT NULL, detail TEXT, created_at TEXT DEFAULT (datetime('now')) ); CREATE INDEX IF NOT EXISTS idx_instances_slug ON instances(slug); CREATE INDEX IF NOT EXISTS idx_instances_owner ON instances(owner); CREATE INDEX IF NOT EXISTS idx_provision_log_instance ON provision_log(instance_id); `); return db; }