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

35 lines
936 B
TypeScript

import { dbconn } from 'decorators/dbconn'
import { getModelForClass, index, modelOptions, mongoose, prop } from '@typegoose/typegoose'
import { Severity } from '@typegoose/typegoose/lib/internal/constants'
import { BaseModule } from './Base'
/**
*/
@dbconn()
@index({ user: 1, activity: 1 }, { unique: false })
@index({ user: 1, activity: 1, item: 1 }, { unique: true })
@modelOptions({
schemaOptions: { collection: 'activity_item', timestamps: true },
options: { allowMixed: Severity.ALLOW },
})
class ActivityItemClass extends BaseModule {
@prop()
public user: string
@prop()
public activity: string
@prop()
public item: string
@prop({ default: 0 })
public amount: number
@prop()
public last: number
public toJson() {
return {
id: this.item,
amount: this.amount,
}
}
}
export const ActivityItem = getModelForClass(ActivityItemClass, { existingConnection: ActivityItemClass['db'] })