Files

46 lines
1.2 KiB
JavaScript
Raw Permalink Normal View History

2021-10-04 20:41:05 +01:00
// SupportBot | Emerald Services
// Ticket ID Structure
2026-08-10 20:15:00 +01:00
const db = require("./Database");
2021-10-04 20:41:05 +01:00
class TicketNumberID {
2021-11-23 15:48:45 -06:00
static async pad() {
2026-08-10 20:15:00 +01:00
let num = await this.get();
let n = num + "";
await this.set(num + 1);
return n.length >= 4 ? n : new Array(4 - n.length + 1).join("0") + n;
2021-10-24 22:41:46 +01:00
}
2021-12-18 22:14:11 -06:00
static async get() {
2026-08-10 20:15:00 +01:00
const settings = db.getSettings ? db.getSettings() : {};
if (typeof settings.ticket_counter === "number") {
return settings.ticket_counter;
}
const row = db.getTicketPanel ? db.getTicketPanel() : null;
if (row && typeof row.message_id === "string" && row.message_id.startsWith("panel-")) {
const parsed = parseInt(row.message_id.replace("panel-", ""), 10);
if (!isNaN(parsed)) return parsed;
}
if (row && typeof row.id === "number" && row.id < 1000000) {
return row.id;
}
return 0;
2021-10-24 22:41:46 +01:00
}
2021-12-18 22:14:11 -06:00
static async set(value) {
2026-08-10 20:15:00 +01:00
const settings = db.getSettings ? db.getSettings() : {};
settings.ticket_counter = value;
if (db.saveSettings) db.saveSettings(settings);
if (db.saveTicketPanel) db.saveTicketPanel(`panel-${value}`, "none");
return value;
2021-10-24 22:41:46 +01:00
}
2021-12-18 22:14:11 -06:00
static async reset() {
2026-08-10 20:15:00 +01:00
return await this.set(0);
2021-10-24 22:41:46 +01:00
}
2021-10-04 20:41:05 +01:00
}
2026-08-10 20:15:00 +01:00
module.exports = TicketNumberID;