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()
}