const sqlite3 = require('sqlite3').verbose(); const path = require('path'); const dbPath = path.resolve(__dirname, 'chat.db'); const db = new sqlite3.Database(dbPath); // 用户表 db.run(`CREATE TABLE IF NOT EXISTS users ( id TEXT PRIMARY KEY, token TEXT NOT NULL, last_active DATETIME DEFAULT CURRENT_TIMESTAMP )`); // 消息表 db.run(`CREATE TABLE IF NOT EXISTS messages ( id INTEGER PRIMARY KEY AUTOINCREMENT, sender_id TEXT NOT NULL, receiver_id TEXT, group_id TEXT, content TEXT NOT NULL, is_withdrawn BOOLEAN DEFAULT 0, timestamp DATETIME DEFAULT CURRENT_TIMESTAMP )`); // 群组表 db.run(`CREATE TABLE IF NOT EXISTS groups ( id TEXT PRIMARY KEY, name TEXT NOT NULL )`); // 群组成员表 db.run(`CREATE TABLE IF NOT EXISTS group_members ( group_id TEXT NOT NULL, user_id TEXT NOT NULL, FOREIGN KEY(group_id) REFERENCES groups(id), FOREIGN KEY(user_id) REFERENCES users(id) )`); module.exports = db;