чат
This commit is contained in:
46
database.js
46
database.js
@@ -500,7 +500,45 @@ function createSQLiteTables() {
|
||||
)`);
|
||||
|
||||
console.log('✅ Таблицы для типов документов и документов (расширенные задачи) созданы');
|
||||
// Таблица для сообщений чата задач
|
||||
db.run(`CREATE TABLE IF NOT EXISTS task_chat_messages (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
task_id INTEGER NOT NULL,
|
||||
user_id INTEGER NOT NULL,
|
||||
message TEXT NOT NULL,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
is_edited BOOLEAN DEFAULT false,
|
||||
is_deleted BOOLEAN DEFAULT false,
|
||||
reply_to_id INTEGER,
|
||||
FOREIGN KEY (task_id) REFERENCES tasks (id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (reply_to_id) REFERENCES task_chat_messages (id) ON DELETE SET NULL
|
||||
)`);
|
||||
|
||||
// Таблица для файлов в сообщениях
|
||||
db.run(`CREATE TABLE IF NOT EXISTS task_chat_files (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
message_id INTEGER NOT NULL,
|
||||
file_path TEXT NOT NULL,
|
||||
original_name TEXT NOT NULL,
|
||||
file_size INTEGER NOT NULL,
|
||||
file_type TEXT,
|
||||
uploaded_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (message_id) REFERENCES task_chat_messages (id) ON DELETE CASCADE
|
||||
)`);
|
||||
|
||||
// Таблица для прочитанных сообщений
|
||||
db.run(`CREATE TABLE IF NOT EXISTS task_chat_reads (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
message_id INTEGER NOT NULL,
|
||||
user_id INTEGER NOT NULL,
|
||||
read_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE(message_id, user_id),
|
||||
FOREIGN KEY (message_id) REFERENCES task_chat_messages (id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE
|
||||
)`);
|
||||
console.log('✅ Таблица для сообщений чата задач созданы');
|
||||
// Создаем индексы для улучшения производительности
|
||||
createSQLiteIndexes();
|
||||
|
||||
@@ -623,7 +661,13 @@ function createSQLiteIndexes() {
|
||||
|
||||
// Индексы для простых документов
|
||||
"CREATE INDEX IF NOT EXISTS idx_simple_documents_task_id ON simple_documents(task_id)",
|
||||
"CREATE INDEX IF NOT EXISTS idx_simple_documents_document_number ON simple_documents(document_number)"
|
||||
"CREATE INDEX IF NOT EXISTS idx_simple_documents_document_number ON simple_documents(document_number)",
|
||||
// Индексы для оптимизации
|
||||
"CREATE INDEX IF NOT EXISTS idx_task_chat_messages_task_id ON task_chat_messages(task_id)",
|
||||
"CREATE INDEX IF NOT EXISTS idx_task_chat_messages_created_at ON task_chat_messages(created_at)",
|
||||
"CREATE INDEX IF NOT EXISTS idx_task_chat_files_message_id ON task_chat_files(message_id)",
|
||||
"CREATE INDEX IF NOT EXISTS idx_task_chat_reads_message_id ON task_chat_reads(message_id)",
|
||||
"CREATE INDEX IF NOT EXISTS idx_task_chat_reads_user_id ON task_chat_reads(user_id)"
|
||||
];
|
||||
|
||||
indexes.forEach(indexQuery => {
|
||||
|
||||
Reference in New Issue
Block a user