59 lines
1.2 KiB
TypeScript
59 lines
1.2 KiB
TypeScript
import { dbconn } from 'decorators/dbconn'
|
|
import { getModelForClass, index, modelOptions, prop } from '@typegoose/typegoose'
|
|
import { BaseModule } from '../Base'
|
|
|
|
export enum ClaimStatusEnum {
|
|
NORMAL = 1,
|
|
CLAIMED = 2,
|
|
}
|
|
|
|
/**
|
|
* 2025/01/25 CEC质押活动
|
|
* bit: 27
|
|
*/
|
|
@dbconn()
|
|
@index({ address: 1, stakeTime: 1 }, { unique: false })
|
|
@modelOptions({
|
|
schemaOptions: { collection: 'cec_stake_reward', timestamps: true },
|
|
})
|
|
export class CecStakeRewardClass extends BaseModule {
|
|
@prop()
|
|
public address: string
|
|
|
|
@prop()
|
|
public stakeAmount: string
|
|
@prop()
|
|
public stakeNum: number
|
|
@prop()
|
|
public stakeTime: number
|
|
|
|
@prop()
|
|
public amount: string
|
|
// 用于显示
|
|
@prop()
|
|
public num: number
|
|
|
|
@prop()
|
|
public apy: number
|
|
|
|
@prop({ enum: ClaimStatusEnum, default: ClaimStatusEnum.NORMAL })
|
|
public status: ClaimStatusEnum
|
|
|
|
@prop()
|
|
public desc: string
|
|
|
|
public toJson() {
|
|
return {
|
|
address: this.address,
|
|
amount: this.amount.toString(),
|
|
num: this.num,
|
|
desc: this.desc,
|
|
apy: this.apy,
|
|
status: this.status,
|
|
stakeAmount: this.stakeAmount,
|
|
stakeTime: this.stakeTime,
|
|
}
|
|
}
|
|
}
|
|
export const CecStakeReward = getModelForClass(CecStakeRewardClass, { existingConnection: CecStakeRewardClass['db'] })
|