aboutsummaryrefslogtreecommitdiff
path: root/src/lib/models/instance/ActivePunishment.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/models/instance/ActivePunishment.ts')
-rw-r--r--src/lib/models/instance/ActivePunishment.ts94
1 files changed, 0 insertions, 94 deletions
diff --git a/src/lib/models/instance/ActivePunishment.ts b/src/lib/models/instance/ActivePunishment.ts
deleted file mode 100644
index 38012ca..0000000
--- a/src/lib/models/instance/ActivePunishment.ts
+++ /dev/null
@@ -1,94 +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 ActivePunishmentType {
- BAN = 'BAN',
- MUTE = 'MUTE',
- ROLE = 'ROLE',
- BLOCK = 'BLOCK'
-}
-
-export interface ActivePunishmentModel {
- id: string;
- type: ActivePunishmentType;
- user: Snowflake;
- guild: Snowflake;
- extraInfo: Snowflake;
- expires: Date | null;
- modlog: string;
-}
-
-export interface ActivePunishmentModelCreationAttributes {
- id?: string;
- type: ActivePunishmentType;
- user: Snowflake;
- guild: Snowflake;
- extraInfo?: Snowflake;
- expires?: Date;
- modlog: string;
-}
-
-/**
- * Keeps track of active punishments so they can be removed later.
- */
-export class ActivePunishment
- extends BaseModel<ActivePunishmentModel, ActivePunishmentModelCreationAttributes>
- implements ActivePunishmentModel
-{
- /**
- * The ID of this punishment (no real use just for a primary key)
- */
- public declare id: string;
-
- /**
- * The type of punishment.
- */
- public declare type: ActivePunishmentType;
-
- /**
- * The user who is punished.
- */
- public declare user: Snowflake;
-
- /**
- * The guild they are punished in.
- */
- public declare guild: Snowflake;
-
- /**
- * Additional info about the punishment if applicable. The channel id for channel blocks and role for punishment roles.
- */
- public declare extraInfo: Snowflake;
-
- /**
- * The date when this punishment expires (optional).
- */
- public declare expires: Date | null;
-
- /**
- * The reference to the modlog entry.
- */
- public declare modlog: string;
-
- /**
- * Initializes the model.
- * @param sequelize The sequelize instance.
- */
- public static initModel(sequelize: Sequelize): void {
- ActivePunishment.init(
- {
- id: { type: DataTypes.STRING, primaryKey: true, defaultValue: nanoid },
- type: { type: DataTypes.STRING, allowNull: false },
- user: { type: DataTypes.STRING, allowNull: false },
- guild: { type: DataTypes.STRING, allowNull: false, references: { model: 'Guilds', key: 'id' } },
- extraInfo: { type: DataTypes.STRING, allowNull: true },
- expires: { type: DataTypes.DATE, allowNull: true },
- modlog: { type: DataTypes.STRING, allowNull: true, references: { model: 'ModLogs', key: 'id' } }
- },
- { sequelize }
- );
- }
-}