Update environment configuration for production, refactor WebRTC components, and enhance chat functionality. Replace deprecated SessionUsersPanel with SessionPage, integrate chat history loading, and improve audio/video toggle handling. Remove unused SessionUsersPanel2 component and update related socket event handling in the server.
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import db from "../../db";
|
||||
import {
|
||||
chatMessages,
|
||||
type NewChatMessage,
|
||||
} from "../../db/schema/chatMessages";
|
||||
import { eq, desc } from "drizzle-orm";
|
||||
|
||||
/**
|
||||
* Сохранить новое сообщение в чате
|
||||
*/
|
||||
export async function saveChatMessage(message: NewChatMessage) {
|
||||
const [newMessage] = await db
|
||||
.insert(chatMessages)
|
||||
.values(message)
|
||||
.returning();
|
||||
return newMessage;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить историю сообщений для сессии
|
||||
* @param sessionId ID сессии
|
||||
* @param limit Максимальное количество сообщений (по умолчанию 100)
|
||||
*/
|
||||
export async function getChatHistory(sessionId: string, limit = 100) {
|
||||
const messages = await db
|
||||
.select()
|
||||
.from(chatMessages)
|
||||
.where(eq(chatMessages.sessionId, sessionId))
|
||||
.orderBy(desc(chatMessages.createdAt))
|
||||
.limit(limit);
|
||||
|
||||
// Возвращаем в правильном порядке (старые сначала)
|
||||
return messages.reverse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Удалить все сообщения для сессии
|
||||
* @param sessionId ID сессии
|
||||
*/
|
||||
export async function deleteChatHistory(sessionId: string) {
|
||||
await db.delete(chatMessages).where(eq(chatMessages.sessionId, sessionId));
|
||||
}
|
||||
Reference in New Issue
Block a user