diff options
Diffstat (limited to 'src/lib/models/Modlog.ts')
-rw-r--r-- | src/lib/models/Modlog.ts | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/lib/models/Modlog.ts b/src/lib/models/Modlog.ts index 0a3feba..6dd5e26 100644 --- a/src/lib/models/Modlog.ts +++ b/src/lib/models/Modlog.ts @@ -1,4 +1,7 @@ +import { DataTypes, Sequelize } from 'sequelize'; import { BaseModel } from './BaseModel'; +import { v4 as uuidv4 } from 'uuid'; +import * as Models from './'; export enum ModlogType { BAN = 'BAN', @@ -39,4 +42,51 @@ export class Modlog guild: string; reason: string | null; duration: number | null; + + static initModel(sequelize: Sequelize): void { + Modlog.init( + { + id: { + type: DataTypes.STRING, + primaryKey: true, + allowNull: false, + defaultValue: uuidv4 + }, + type: { + type: new DataTypes.ENUM( + 'BAN', + 'TEMPBAN', + 'MUTE', + 'TEMPMUTE', + 'KICK', + 'WARN' + ), + allowNull: false + }, + user: { + type: DataTypes.STRING, + allowNull: false + }, + moderator: { + type: DataTypes.STRING, + allowNull: false + }, + duration: { + type: DataTypes.STRING, + allowNull: true + }, + reason: { + type: DataTypes.STRING, + allowNull: true + }, + guild: { + type: DataTypes.STRING, + references: { + model: Models.Guild + } + } + }, + { sequelize: sequelize } + ); + } } |