aboutsummaryrefslogtreecommitdiff
path: root/src/lib/models/ActivePunishment.ts
diff options
context:
space:
mode:
authorIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-02-04 11:05:30 -0500
committerIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-02-04 11:05:30 -0500
commite5bc336f9586b1f5515be3f1d239d2194489e9c5 (patch)
tree5bcf124dc277f23ee5b812b9f93a385bf9180f1f /src/lib/models/ActivePunishment.ts
parent2db87acac4fe36baa93db0a8e52d7a83b3ce2998 (diff)
downloadtanzanite-e5bc336f9586b1f5515be3f1d239d2194489e9c5.tar.gz
tanzanite-e5bc336f9586b1f5515be3f1d239d2194489e9c5.tar.bz2
tanzanite-e5bc336f9586b1f5515be3f1d239d2194489e9c5.zip
refactor models
Diffstat (limited to 'src/lib/models/ActivePunishment.ts')
-rw-r--r--src/lib/models/ActivePunishment.ts91
1 files changed, 0 insertions, 91 deletions
diff --git a/src/lib/models/ActivePunishment.ts b/src/lib/models/ActivePunishment.ts
deleted file mode 100644
index 5fae2ac..0000000
--- a/src/lib/models/ActivePunishment.ts
+++ /dev/null
@@ -1,91 +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;
-}
-
-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, allowNull: false, 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 }
- );
- }
-}