vk_escrows.cjs
884 Bytes
const tableName = 'vk_escrows'
function buildTable(t) {
t.string('id', 64).primary()
t.string('task_id', 64).notNullable()
t.string('payer_wallet', 64).notNullable()
t.bigInteger('amount').notNullable()
t.string('status', 16).notNullable()
t.string('deduct_ledger_id', 64).notNullable()
t.datetime('created_at', { precision: 3 }).notNullable()
t.datetime('closed_at', { precision: 3 }).nullable()
t.unique(['task_id'], { indexName: 'uq_vk_escrows_task' })
t.unique(['deduct_ledger_id'], { indexName: 'uq_vk_escrows_deduct_ledger' })
t.index(['payer_wallet', 'status'], 'idx_vk_escrows_payer_status')
t.check("status in ('held','released','refunded')", [], 'ck_vk_escrows_status')
t.check('amount > 0', [], 'ck_vk_escrows_amount')
t.check("(status = 'held') = (closed_at is null)", [], 'ck_vk_escrows_closed')
}
module.exports = { tableName, buildTable }