aboutsummaryrefslogtreecommitdiff
path: root/src/lib/models/instance/ModLog.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/models/instance/ModLog.ts')
-rw-r--r--src/lib/models/instance/ModLog.ts127
1 files changed, 0 insertions, 127 deletions
diff --git a/src/lib/models/instance/ModLog.ts b/src/lib/models/instance/ModLog.ts
deleted file mode 100644
index c25f043..0000000
--- a/src/lib/models/instance/ModLog.ts
+++ /dev/null
@@ -1,127 +0,0 @@
-import { type Snowflake } from 'discord.js';
-import { nanoid } from 'nanoid';
-import { type Sequelize } from 'sequelize';
-import { BaseModel } from '../BaseModel.js';
-const { DataTypes } = (await import('sequelize')).default;
-
-export enum ModLogType {
- PERM_BAN = 'PERM_BAN',
- TEMP_BAN = 'TEMP_BAN',
- UNBAN = 'UNBAN',
- KICK = 'KICK',
- PERM_MUTE = 'PERM_MUTE',
- TEMP_MUTE = 'TEMP_MUTE',
- UNMUTE = 'UNMUTE',
- WARN = 'WARN',
- PERM_PUNISHMENT_ROLE = 'PERM_PUNISHMENT_ROLE',
- TEMP_PUNISHMENT_ROLE = 'TEMP_PUNISHMENT_ROLE',
- REMOVE_PUNISHMENT_ROLE = 'REMOVE_PUNISHMENT_ROLE',
- PERM_CHANNEL_BLOCK = 'PERM_CHANNEL_BLOCK',
- TEMP_CHANNEL_BLOCK = 'TEMP_CHANNEL_BLOCK',
- CHANNEL_UNBLOCK = 'CHANNEL_UNBLOCK',
- TIMEOUT = 'TIMEOUT',
- REMOVE_TIMEOUT = 'REMOVE_TIMEOUT'
-}
-
-export interface ModLogModel {
- id: string;
- type: ModLogType;
- user: Snowflake;
- moderator: Snowflake;
- reason: string | null;
- duration: number | null;
- guild: Snowflake;
- evidence: string;
- pseudo: boolean;
- hidden: boolean;
-}
-
-export interface ModLogModelCreationAttributes {
- id?: string;
- type: ModLogType;
- user: Snowflake;
- moderator: Snowflake;
- reason?: string | null;
- duration?: number;
- guild: Snowflake;
- evidence?: string;
- pseudo?: boolean;
- hidden?: boolean;
-}
-
-/**
- * A mod log case.
- */
-export class ModLog extends BaseModel<ModLogModel, ModLogModelCreationAttributes> implements ModLogModel {
- /**
- * The primary key of the modlog entry.
- */
- public declare id: string;
-
- /**
- * The type of punishment.
- */
- public declare type: ModLogType;
-
- /**
- * The user being punished.
- */
- public declare user: Snowflake;
-
- /**
- * The user carrying out the punishment.
- */
- public declare moderator: Snowflake;
-
- /**
- * The reason the user is getting punished.
- */
- public declare reason: string | null;
-
- /**
- * The amount of time the user is getting punished for.
- */
- public declare duration: number | null;
-
- /**
- * The guild the user is getting punished in.
- */
- public declare guild: Snowflake;
-
- /**
- * Evidence of what the user is getting punished for.
- */
- public declare evidence: string;
-
- /**
- * Not an actual modlog just used so a punishment entry can be made.
- */
- public declare pseudo: boolean;
-
- /**
- * Hides from the modlog command unless show hidden is specified.
- */
- public declare hidden: boolean;
-
- /**
- * Initializes the model.
- * @param sequelize The sequelize instance.
- */
- public static initModel(sequelize: Sequelize): void {
- ModLog.init(
- {
- id: { type: DataTypes.STRING, primaryKey: true, allowNull: false, defaultValue: nanoid },
- type: { type: DataTypes.STRING, allowNull: false }, //? This is not an enum because of a sequelize issue: https://github.com/sequelize/sequelize/issues/2554
- user: { type: DataTypes.STRING, allowNull: false },
- moderator: { type: DataTypes.STRING, allowNull: false },
- duration: { type: DataTypes.STRING, allowNull: true },
- reason: { type: DataTypes.TEXT, allowNull: true },
- guild: { type: DataTypes.STRING, references: { model: 'Guilds', key: 'id' } },
- evidence: { type: DataTypes.TEXT, allowNull: true },
- pseudo: { type: DataTypes.BOOLEAN, allowNull: false, defaultValue: false },
- hidden: { type: DataTypes.BOOLEAN, allowNull: false, defaultValue: false }
- },
- { sequelize }
- );
- }
-}