import { BelongsTo, Column, DataType, ForeignKey, Index, Model, Table } from 'sequelize-typescript'; import { typeReward } from '../utils/enums'; import { Address } from './address'; import { Coin } from './coin'; import { Nft } from './nft'; import { Validator } from './validator'; @Table export class Reward extends Model { @Column({ type: DataType.INTEGER, autoIncrement: true, primaryKey: true }) id: number; @Column(DataType.ENUM({ values: Object.values(typeReward) })) type: typeReward; @Column(DataType.DECIMAL) value: string; @ForeignKey(() => Coin) @Column(DataType.INTEGER) coinId: number; @ForeignKey(() => Nft) @Column(DataType.INTEGER) nftId: number; @Index({ name: 'reward-validator-index', using: 'HASH', }) @ForeignKey(() => Validator) @Column(DataType.INTEGER) validatorId: number; @Index({ name: 'reward-address-index', using: 'HASH', }) @ForeignKey(() => Address) @Column(DataType.INTEGER) addressId: number; @Column(DataType.DATE) date: Date; @BelongsTo(() => Address) address: Address; @BelongsTo(() => Validator) validator: Validator; }