46 lines
769 B
TypeScript
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;
|
|
}
|