import type { Selectable } from 'kysely' import type * as Db from '../Db.js' import type * as db_Schema from '../Schema.js' /** Columns of the `funding_transfer_events` table. */ export type Table = db_Schema.FundingTransferEvent /** One immutable public snapshot at a material version. */ export type Record = Selectable /** Inserts an event row. Callers commit it with its transfer row in one transaction. */ export function insert(db: Db.Db, record: Record): Promise { return db.kysely .insertInto('funding_transfer_events') .values(record) .returningAll() .executeTakeFirstOrThrow() } /** Lists a transfer's events, oldest version first. */ export function listByTransfer(db: Db.Db, transferId: string): Promise { return db.kysely .selectFrom('funding_transfer_events') .selectAll() .where('transferId', '=', transferId) .orderBy('version', 'asc') .execute() }