update
This commit is contained in:
+38
@@ -86,6 +86,10 @@ function initDatabase() {
|
||||
if (!userCols.some(c => c.name === 'personnel_id')) {
|
||||
db.exec('ALTER TABLE users ADD COLUMN personnel_id TEXT');
|
||||
}
|
||||
// 用户表增加最后登录时间字段(用于在线状态展示)
|
||||
if (!userCols.some(c => c.name === 'last_login')) {
|
||||
db.exec('ALTER TABLE users ADD COLUMN last_login TEXT');
|
||||
}
|
||||
|
||||
// 设备表增加报废相关字段
|
||||
const deviceCols = db.prepare('PRAGMA table_info(devices)').all();
|
||||
@@ -133,6 +137,40 @@ function initDatabase() {
|
||||
)
|
||||
`);
|
||||
|
||||
// 会话表(单聊 direct / 群聊 group)
|
||||
db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS conversations (
|
||||
id TEXT PRIMARY KEY,
|
||||
type TEXT NOT NULL,
|
||||
name TEXT DEFAULT '',
|
||||
creator_id TEXT,
|
||||
created_at TEXT DEFAULT (datetime('now', 'localtime'))
|
||||
)
|
||||
`);
|
||||
|
||||
// 会话成员表(last_read_message_id 用于未读计数)
|
||||
db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS conversation_members (
|
||||
conversation_id TEXT NOT NULL,
|
||||
user_id TEXT NOT NULL,
|
||||
role TEXT DEFAULT 'member',
|
||||
last_read_message_id INTEGER DEFAULT 0,
|
||||
joined_at TEXT DEFAULT (datetime('now', 'localtime')),
|
||||
PRIMARY KEY (conversation_id, user_id)
|
||||
)
|
||||
`);
|
||||
|
||||
// 消息表(自增 id 兼作排序游标)
|
||||
db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS messages (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
conversation_id TEXT NOT NULL,
|
||||
sender_id TEXT NOT NULL,
|
||||
content TEXT NOT NULL,
|
||||
created_at TEXT DEFAULT (datetime('now', 'localtime'))
|
||||
)
|
||||
`);
|
||||
|
||||
// 插入示例数据
|
||||
const deviceCount = db.prepare('SELECT COUNT(*) as count FROM devices').get();
|
||||
if (deviceCount.count === 0) {
|
||||
|
||||
Reference in New Issue
Block a user