task-svr/src/models/TokenClaimHistory.ts
CounterFire2023 7d3cd73afc reformat code
2024-01-17 11:07:48 +08:00

52 lines
1.2 KiB
TypeScript

import { Severity, getModelForClass, index, modelOptions, mongoose, prop } from '@typegoose/typegoose'
import { dbconn } from 'decorators/dbconn'
import { BaseModule } from './Base'
@dbconn()
@index({ user: 1 }, { unique: false })
@index({ activity: 1 }, { unique: false })
@index({ user: 1, activity: 1, type: 1 }, { unique: false })
@modelOptions({
schemaOptions: { collection: 'token_claim_record', timestamps: true },
options: { allowMixed: Severity.ALLOW },
})
class TokenClaimHistoryClass extends BaseModule {
@prop({ required: true })
public user: string
@prop({ required: true })
public activity: string
/**
* 冗余字段, 方便查找
*/
@prop()
public address: string
@prop()
public token: string
@prop()
public amount: number
/**
* 0: 待确认
* 1: 已确认
* -1: 已明确失败
*/
@prop({ default: 0 })
public status: number
// 转账交易hash
@prop()
public hash: string
public static async addOne(params: Partial<TokenClaimHistoryClass>) {
const record = new TokenClaimHistory(params)
await record.save()
return record
}
}
export const TokenClaimHistory = getModelForClass(TokenClaimHistoryClass, {
existingConnection: TokenClaimHistoryClass['db'],
})