feat: add User data manager & User Database

This commit is contained in:
CrescentLeaf
2025-06-15 22:44:45 +08:00
parent f337896c66
commit 283bc7e296
2 changed files with 53 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
// @ts-types="npm:sequelize"
import { Sequelize, Op, Model, DataTypes } from 'sequelize'
import Config from "../config.ts"
import User from "./User.ts";
abstract class BaseDataManager {
declare sequelize: Sequelize
declare name: string
constructor(name: string) {
this.init(name)
this.onInit()
}
private init(name: string) {
this.name = name
this.sequelize = new Sequelize({
dialect: 'sqlite',
storage: Config.dirs.DATABASES_DIR + '/' + name + '.db'
})
}
abstract onInit(): void
}
class UserDataManager extends BaseDataManager {
static SINGLE_INSTANCE = new UserDataManager('users')
override onInit(): void {
User.initTable(this.sequelize, this.name)
}
}
export default class DataBaseManager {
static getUserDataManager() {
return UserDataManager.SINGLE_INSTANCE
}
}