import { BelongsTo, Column, DataType, ForeignKey, Index, Model, Scopes, Table, } from 'sequelize-typescript'; import { EvmAccount } from './evmAccount'; import { EvmToken } from './evmToken'; @Scopes(() => ({ defaultScope: { attributes: { exclude: ['createdAt', 'updatedAt'], }, include: [ { model: EvmAccount, as: 'evmAccount', }, { model: EvmToken, as: 'evmToken', }, ], }, tokenOnly: { attributes: { exclude: ['createdAt', 'updatedAt'], }, include: [ { model: EvmToken, as: 'evmToken', }, ], }, })) @Table export class EvmAccountERC20TokenBalance extends Model { @Column({ type: DataType.STRING, defaultValue: '0' }) amount: string; // relations M-1 @Index({ name: 'erc720-token-index', using: 'HASH', }) @ForeignKey(() => EvmToken) @Column(DataType.INTEGER) evmTokenId: number; @Index({ name: 'erc720-account-index', using: 'HASH', }) @ForeignKey(() => EvmAccount) @Column(DataType.INTEGER) evmAccountId: number; @BelongsTo(() => EvmToken) evmToken: EvmToken; @BelongsTo(() => EvmAccount) evmAccount: EvmAccount; }