diff options
author | IRONM00N <64110067+IRONM00N@users.noreply.github.com> | 2022-02-04 11:05:30 -0500 |
---|---|---|
committer | IRONM00N <64110067+IRONM00N@users.noreply.github.com> | 2022-02-04 11:05:30 -0500 |
commit | e5bc336f9586b1f5515be3f1d239d2194489e9c5 (patch) | |
tree | 5bcf124dc277f23ee5b812b9f93a385bf9180f1f /src/lib/models/ActivePunishment.ts | |
parent | 2db87acac4fe36baa93db0a8e52d7a83b3ce2998 (diff) | |
download | tanzanite-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.ts | 91 |
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 } - ); - } -} |