Fix issues

This commit is contained in:
root
2025-10-12 10:47:58 +02:00
commit ddb5412b91
35 changed files with 2370 additions and 0 deletions

39
dist/db/migrate.js vendored Normal file
View File

@@ -0,0 +1,39 @@
import { withConn } from './pool.js';
export async function migrate() {
await withConn(async (conn) => {
await conn.query(`
CREATE TABLE IF NOT EXISTS guild_config (
guild_id VARCHAR(32) PRIMARY KEY,
moderation_enabled TINYINT(1) NOT NULL DEFAULT 1,
ai_enabled TINYINT(1) NOT NULL DEFAULT 0,
logs_enabled TINYINT(1) NOT NULL DEFAULT 0,
logs_channel_id VARCHAR(32) DEFAULT NULL,
qotd_enabled TINYINT(1) NOT NULL DEFAULT 0,
qotd_channel_id VARCHAR(32) DEFAULT NULL,
profanity_filter_enabled TINYINT(1) NOT NULL DEFAULT 1,
qotd_last_sent DATE DEFAULT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
`);
await conn.query(`
CREATE TABLE IF NOT EXISTS user_xp (
guild_id VARCHAR(32) NOT NULL,
user_id VARCHAR(32) NOT NULL,
xp INT NOT NULL DEFAULT 0,
PRIMARY KEY (guild_id, user_id),
INDEX (guild_id),
INDEX (xp)
);
`);
await conn.query(`
CREATE TABLE IF NOT EXISTS user_ai_memory (
guild_id VARCHAR(32) NOT NULL,
user_id VARCHAR(32) NOT NULL,
messages JSON NOT NULL,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (guild_id, user_id)
);
`);
});
}

20
dist/db/pool.js vendored Normal file
View File

@@ -0,0 +1,20 @@
import mariadb from 'mariadb';
import { env } from '../config/env.js';
export const pool = mariadb.createPool({
host: env.db.host,
port: env.db.port,
user: env.db.user,
password: env.db.password,
database: env.db.database,
connectionLimit: 5,
multipleStatements: true
});
export async function withConn(fn) {
const conn = await pool.getConnection();
try {
return await fn(conn);
}
finally {
conn.end();
}
}