From 3cd8db5ebc83fd31dd831605bc347dedbc2f9367 Mon Sep 17 00:00:00 2001 From: TymanWasTaken <32660892+tymanwastaken@users.noreply.github.com> Date: Tue, 11 May 2021 22:55:26 -0600 Subject: set up db for leveling --- src/lib/extensions/BotClient.ts | 15 +++++++++++++++ src/lib/models/Level.ts | 21 +++++++++++++++++++++ src/lib/models/index.ts | 1 + 3 files changed, 37 insertions(+) create mode 100644 src/lib/models/Level.ts (limited to 'src') diff --git a/src/lib/extensions/BotClient.ts b/src/lib/extensions/BotClient.ts index 547d0eb..7ac0051 100644 --- a/src/lib/extensions/BotClient.ts +++ b/src/lib/extensions/BotClient.ts @@ -243,6 +243,21 @@ export class BotClient extends AkairoClient { }, { sequelize: this.db } ); + Models.Level.init( + { + id: { + type: DataTypes.STRING, + primaryKey: true, + allowNull: false + }, + xp: { + type: DataTypes.INTEGER, + allowNull: false, + defaultValue: 0 + } + }, + { sequelize: this.db } + ); try { await this.db.sync({ alter: true }); // Sync all tables to fix everything if updated } catch { diff --git a/src/lib/models/Level.ts b/src/lib/models/Level.ts new file mode 100644 index 0000000..bce9aa4 --- /dev/null +++ b/src/lib/models/Level.ts @@ -0,0 +1,21 @@ +import { Optional } from 'sequelize/types'; +import { BaseModel } from './BaseModel'; + +export interface LevelModel { + id: string; + xp: number; +} + +export type LevelModelCreationAttributes = Optional; + +export class Level extends BaseModel { + public id: string; + public xp: number; + get level(): number { + return Level.convertXpToLevel(this.xp); + } + static convertXpToLevel(xp: number): number { + // WIP + return 0; + } +} diff --git a/src/lib/models/index.ts b/src/lib/models/index.ts index ef65415..8eb817e 100644 --- a/src/lib/models/index.ts +++ b/src/lib/models/index.ts @@ -2,3 +2,4 @@ export * from './BaseModel'; export * from './Guild'; export * from './Ban'; export * from './Modlog'; +export * from './Level'; -- cgit