import { BelongsTo, Column, DataType, ForeignKey, Model, Table } from 'sequelize-typescript'; import { IExtraData } from '../utils/interfaces'; import { EvmBlock } from './evmBlock'; import { EvmReceipt } from './evmReceipt'; import { EvmTransaction } from './evmTransaction'; @Table export class EvmReceiptLog extends Model { @Column(DataType.TEXT) data: string; @Column(DataType.STRING) address: string; @Column(DataType.BOOLEAN) removed: boolean; @Column(DataType.SMALLINT) logIndex: number; @Column({ type: DataType.JSONB, allowNull: true, defaultValue: null }) topics: string[]; @Column({ type: DataType.JSONB, allowNull: true, defaultValue: null }) extraData: IExtraData; // relations @ForeignKey(() => EvmBlock) @Column(DataType.INTEGER) evmBlockHeight: number; @ForeignKey(() => EvmTransaction) @Column(DataType.INTEGER) evmTransactionId: number; @ForeignKey(() => EvmReceipt) @Column(DataType.INTEGER) evmReceiptId: number; // relations M-1 @BelongsTo(() => EvmBlock, 'evmBlockHeight') evmBlock: EvmBlock; @BelongsTo(() => EvmTransaction, 'evmTransactionId') evmTransaction: EvmTransaction; @BelongsTo(() => EvmReceipt, 'evmReceiptId') evmReceipt: EvmReceipt; }