feat: poll groups/servers, timed polls, features sort+filter by group

This commit is contained in:
2026-07-14 03:17:13 +08:00
parent d61ad2109f
commit 4913984391
8 changed files with 474 additions and 1 deletions

View File

@@ -184,10 +184,15 @@ async function initSchema(connection) {
title VARCHAR(200) NOT NULL,
description TEXT,
options JSON NOT NULL,
group_name VARCHAR(100) NOT NULL DEFAULT '',
server_name VARCHAR(100) NOT NULL DEFAULT '',
start_time DATETIME,
end_time DATETIME,
active TINYINT(1) NOT NULL DEFAULT 1,
created_by INT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
INDEX idx_active (active)
INDEX idx_active (active),
INDEX idx_group_server (group_name, server_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4`);
await createIfNotExists('poll_votes', `CREATE TABLE poll_votes (
@@ -204,6 +209,8 @@ async function initSchema(connection) {
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(200) NOT NULL,
description TEXT,
group_name VARCHAR(100) NOT NULL DEFAULT '',
server_name VARCHAR(100) NOT NULL DEFAULT '',
status ENUM('pending','planned','done') NOT NULL DEFAULT 'pending',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4`);
@@ -217,6 +224,13 @@ async function initSchema(connection) {
INDEX idx_item (item_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4`);
await createIfNotExists('server_groups', `CREATE TABLE server_groups (
id INT AUTO_INCREMENT PRIMARY KEY,
group_name VARCHAR(100) NOT NULL,
server_name VARCHAR(100) NOT NULL,
UNIQUE KEY uk_group_server (group_name, server_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4`);
await createIfNotExists('audit_logs', `CREATE TABLE audit_logs (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,