misc: update db tables

This commit is contained in:
WJG 2024-01-28 14:52:32 +08:00
parent 9b79881c53
commit ef72a14ef6
No known key found for this signature in database
GPG Key ID: 258474EF8590014A
2 changed files with 52 additions and 28 deletions

View File

@ -14,63 +14,86 @@ model User {
id String @id @default(uuid()) id String @id @default(uuid())
name String name String
profile String profile String
createdAt DateTime @default(now()) // 关联数据
updatedAt DateTime @updatedAt rooms Room[] @relation("RoomMembers")
messages Message[] messages Message[]
memories Memory[] memories Memory[]
shortTermMemories ShortTermMemory[] shortTermMemories ShortTermMemory[]
longTermMemories LongTermMemory[] longTermMemories LongTermMemory[]
// 时间日期
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Room {
id String @id @default(uuid())
name String
description String
// 关联数据
members User[] @relation("RoomMembers")
messages Message[]
memories Memory[]
shortTermMemories ShortTermMemory[]
longTermMemories LongTermMemory[]
// 时间日期
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
} }
model Message { model Message {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
text String text String
// 消息发送者 // 关联数据
sender User @relation(fields: [senderId], references: [id]) sender User @relation(fields: [senderId], references: [id])
senderId String
room Room @relation(fields: [roomId], references: [id])
roomId String
// 时间日期
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
senderId String
} }
model Memory { model Memory {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
// 记忆拥有者 text String
owner User @relation(fields: [ownerId], references: [id]) // 关联数据
// 记忆类型:目前有 [ "message" ] owner User? @relation(fields: [ownerId], references: [id]) // owner 为空时,即房间自己的公共记忆
type String ownerId String?
// 记忆内容JSON字符串{ data: any } Room Room @relation(fields: [roomId], references: [id])
content String roomId String
shortTermMemories ShortTermMemory[]
// 时间日期
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
ownerId String
shortTermMemories ShortTermMemory[]
} }
model ShortTermMemory { model ShortTermMemory {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
// 记忆拥有者 text String
owner User @relation(fields: [ownerId], references: [id]) // 关联数据
// 记忆最后更新的位置 cursor Memory @relation(fields: [cursorId], references: [id]) // 记忆最后更新的位置
cursor Memory @relation(fields: [cursorId], references: [id]) cursorId Int
// 记忆内容:字符串 owner User? @relation(fields: [ownerId], references: [id]) // owner 为空时,即房间自己的公共记忆
content String ownerId String?
Room Room @relation(fields: [roomId], references: [id])
roomId String
longTermMemories LongTermMemory[]
// 时间日期
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
ownerId String
cursorId Int
longTermMemories LongTermMemory[]
} }
model LongTermMemory { model LongTermMemory {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
// 记忆拥有者 text String
owner User @relation(fields: [ownerId], references: [id]) // 关联数据
// 记忆最后更新的位置
cursor ShortTermMemory @relation(fields: [cursorId], references: [id]) cursor ShortTermMemory @relation(fields: [cursorId], references: [id])
// 记忆内容:字符串 cursorId Int
content String owner User? @relation(fields: [ownerId], references: [id]) // owner 为空时,即房间自己的公共记忆
ownerId String?
room Room @relation(fields: [roomId], references: [id])
roomId String
// 时间日期
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
ownerId String
cursorId Int
} }

View File

@ -5,6 +5,7 @@ import { ShortTermMemory } from "./short-term";
import { LongTermMemory } from "./long-term"; import { LongTermMemory } from "./long-term";
// todo 在会话中,向会话的参与者分发消息(记忆),公共记忆,个人记忆 // todo 在会话中,向会话的参与者分发消息(记忆),公共记忆,个人记忆
// todo 通知会话参与者
export class UserMemory { export class UserMemory {
private user: User; private user: User;