cloudservices/src/models/Moderation.ts

46 lines
769 B
TypeScript

import { modelOptions, prop } from '@typegoose/typegoose';
class Expiration {
@prop({ required: true })
date: Date;
@prop({ required: true, default: false })
processed: boolean;
}
enum Type {
Create,
Warn,
Lock,
Unlock,
Delete
}
@modelOptions({ schemaOptions: { collection: 'Moderation' } })
export default class Moderation {
@prop({ required: true })
username: string;
@prop({ required: true })
userID: string;
@prop({ required: true, unique: true })
logID: string;
@prop({ required: true })
moderatorID: string;
@prop()
reason?: string;
@prop({ enum: Type, required: true })
type: Type;
@prop({ required: true })
date: Date;
@prop()
expiration?: Expiration;
}