2023Collectabot/src/database.ts

95 lines
1.7 KiB
TypeScript

import { DataTypes, Sequelize } from "sequelize";
import { BlacklistUser } from "./models/blacklistuser";
import { CommandBlacklist } from "./models/commandblacklist";
import { Player } from "./models/player";
import { Unit } from "./models/unit";
export const db = new Sequelize({
dialect: 'sqlite',
storage: './database.sqlite',
logging: false
});
BlacklistUser.init({
user_id: {
type: DataTypes.TEXT,
primaryKey: true
}
},
{
tableName: 'BlacklistUser',
sequelize: db
});
CommandBlacklist.init({
user_id: DataTypes.TEXT,
guild_id: DataTypes.TEXT,
blacklist: {
type: DataTypes.TEXT,
defaultValue: '{}'
}
},
{
tableName: 'CommandBlacklist',
sequelize: db
});
Player.init({
user_id: {
type: DataTypes.TEXT,
primaryKey: true
},
start: {
type: DataTypes.BIGINT
},
spent: {
type: DataTypes.BIGINT,
defaultValue: 0
},
elo: {
type: DataTypes.INTEGER,
defaultValue: 400
},
slot1: {
type: DataTypes.INTEGER,
defaultValue: null,
allowNull: true
},
slot2: {
type: DataTypes.INTEGER,
defaultValue: null,
allowNull: true
},
slot3: {
type: DataTypes.INTEGER,
defaultValue: null,
allowNull: true
}
},
{
tableName: 'Player',
sequelize: db
});
Unit.init({
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
user_id: {
type: DataTypes.TEXT
},
character_id: {
type: DataTypes.INTEGER
}
},
{
tableName: 'Unit',
sequelize: db
});
(async () => {
await db.sync();
})();