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'] })