File size: 1,016 Bytes
00a912e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import type { ChatMessage, User } from '@music-together/shared'
import { chatRepo } from '../repositories/chatRepository.js'

/** 创建用户聊天消息(客户端用 React 文本渲染,天然防 XSS,无需服务端转义) */
export function createMessage(roomId: string, user: User, content: string): ChatMessage {
  const message: ChatMessage = {
    id: crypto.randomUUID(),
    userId: user.id,
    nickname: user.nickname,
    content: content.trim(),
    timestamp: Date.now(),
    type: 'user',
  }

  chatRepo.addMessage(roomId, message)
  return message
}

/** 创建系统消息 */
export function createSystemMessage(roomId: string, content: string): ChatMessage {
  const message: ChatMessage = {
    id: crypto.randomUUID(),
    userId: 'system',
    nickname: 'system',
    content,
    timestamp: Date.now(),
    type: 'system',
  }

  chatRepo.addMessage(roomId, message)
  return message
}

export function getHistory(roomId: string): ChatMessage[] {
  return chatRepo.getHistory(roomId)
}