import type Database from 'better-sqlite3' export function initSchema(db: Database.Database): void { db.exec(` CREATE TABLE IF NOT EXISTS products ( id TEXT PRIMARY KEY, name TEXT NOT NULL, slug TEXT NOT NULL UNIQUE, description TEXT NOT NULL DEFAULT '', price_sats INTEGER NOT NULL, images TEXT NOT NULL DEFAULT '[]', sizes TEXT NOT NULL DEFAULT '[]', category TEXT NOT NULL DEFAULT 'general', is_active INTEGER NOT NULL DEFAULT 1, created_at TEXT NOT NULL DEFAULT (datetime('now')), updated_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS orders ( id TEXT PRIMARY KEY, nostr_pubkey TEXT, email TEXT, btcpay_invoice_id TEXT, status TEXT NOT NULL DEFAULT 'pending', shipping_address_encrypted TEXT, items TEXT NOT NULL, total_sats INTEGER NOT NULL, note TEXT, created_at TEXT NOT NULL DEFAULT (datetime('now')), updated_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS order_events ( id INTEGER PRIMARY KEY AUTOINCREMENT, order_id TEXT NOT NULL REFERENCES orders(id), status TEXT NOT NULL, note TEXT, created_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS admin_sessions ( token TEXT PRIMARY KEY, created_at TEXT NOT NULL DEFAULT (datetime('now')), expires_at TEXT NOT NULL ); CREATE INDEX IF NOT EXISTS idx_orders_status ON orders(status); CREATE INDEX IF NOT EXISTS idx_orders_nostr ON orders(nostr_pubkey); CREATE INDEX IF NOT EXISTS idx_order_events_order ON order_events(order_id); CREATE INDEX IF NOT EXISTS idx_products_slug ON products(slug); CREATE INDEX IF NOT EXISTS idx_products_category ON products(category); `) }