import { BelongsTo, Column, DataType, ForeignKey, HasMany, Index, Model, Table, } from 'sequelize-typescript'; import { Address } from './address'; import { Multisig } from './multisig'; import { MultisigSign } from './multisigSign'; import { Tx } from './tx'; @Table export class MultisigTx extends Model { @Index({ name: 'multisigTx-transaction-index', using: 'HASH', }) @Column(DataType.STRING) transaction: string; @Column(DataType.JSONB) data: object; @Index({ name: 'multisigTx-txId-index', using: 'HASH', }) @ForeignKey(() => Tx) @Column({ type: DataType.INTEGER, allowNull: false }) txId: number; @BelongsTo(() => Tx) tx: Tx; @Column({ type: DataType.STRING, allowNull: true }) hashSign: string; @Column(DataType.BOOLEAN) confirmed: boolean; @Column({ type: DataType.INTEGER, allowNull: true }) confirmations: number; @HasMany(() => MultisigSign) signs: MultisigSign[]; @Index({ name: 'multisigTx-address-index', using: 'HASH', }) @ForeignKey(() => Multisig) @Column(DataType.INTEGER) addressId: number; @BelongsTo(() => Multisig) address: Multisig; @ForeignKey(() => Address) @Column(DataType.INTEGER) accountAddressId: number; @BelongsTo(() => Address) accountAddress: Address; }