1-- nzip D1 schema. Idempotent; apply with:2-- wrangler d1 execute nzip --remote --file schema.sql34CREATE TABLE IF NOT EXISTS vaults (5 slot INTEGER PRIMARY KEY CHECK (slot BETWEEN 0 AND 15),6 name TEXT NOT NULL UNIQUE,7 created_at INTEGER NOT NULL8);910CREATE TABLE IF NOT EXISTS sites (11 address INTEGER PRIMARY KEY CHECK (address BETWEEN 0 AND 65535),12 vault_slot INTEGER NOT NULL REFERENCES vaults(slot),13 alias TEXT,14 current_manifest TEXT NOT NULL,15 created_at INTEGER NOT NULL,16 updated_at INTEGER NOT NULL,17 expires_at INTEGER, -- unix seconds; NULL = permanent18 password_hash TEXT, -- reserved for password shares; NULL = public19 UNIQUE (vault_slot, alias)20);21CREATE INDEX IF NOT EXISTS idx_sites_expiry ON sites(expires_at) WHERE expires_at IS NOT NULL;2223CREATE TABLE IF NOT EXISTS pushes (24 address INTEGER NOT NULL REFERENCES sites(address) ON DELETE CASCADE,25 seq INTEGER NOT NULL,26 manifest_hash TEXT NOT NULL,27 pushed_at INTEGER NOT NULL,28 note TEXT,29 PRIMARY KEY (address, seq)30);