import * as Effect from "effect/Effect"; import * as SqlClient from "effect/unstable/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; yield* sql` CREATE TABLE IF NOT EXISTS auth_pairing_links ( id TEXT PRIMARY KEY, credential TEXT NOT NULL UNIQUE, method TEXT NOT NULL, role TEXT NOT NULL, subject TEXT NOT NULL, created_at TEXT NOT NULL, expires_at TEXT NOT NULL, consumed_at TEXT, revoked_at TEXT ) `; yield* sql` CREATE INDEX IF NOT EXISTS idx_auth_pairing_links_active ON auth_pairing_links(revoked_at, consumed_at, expires_at) `; yield* sql` CREATE TABLE IF NOT EXISTS auth_sessions ( session_id TEXT PRIMARY KEY, subject TEXT NOT NULL, role TEXT NOT NULL, method TEXT NOT NULL, issued_at TEXT NOT NULL, expires_at TEXT NOT NULL, revoked_at TEXT ) `; yield* sql` CREATE INDEX IF NOT EXISTS idx_auth_sessions_active ON auth_sessions(revoked_at, expires_at, issued_at) `; });