Files
customer-server/model/entity/conversation_archive.go

72 lines
2.3 KiB
Go
Raw Normal View History

2026-03-14 10:02:49 +08:00
package entity
import (
"time"
"gitea.com/red-future/common/beans"
)
// ConversationArchiveTempCollection 归档临时表名
const ConversationArchiveTempCollection = "conversation_archive_temp"
// ConversationArchiveTemp 归档临时表实体(与 Conversation 结构相同)
type ConversationArchiveTemp struct {
beans.MongoBaseDO `bson:",inline"`
UserId string `bson:"userId" json:"userId"`
Platform string `bson:"platform" json:"platform"`
SessionId string `bson:"sessionId" json:"sessionId"`
Question string `bson:"question" json:"question"`
Answer string `bson:"answer" json:"answer"`
MessageId string `bson:"messageId" json:"messageId"`
MsgTime *time.Time `bson:"msgTime" json:"msgTime"` // 指针类型与MongoBaseDO一致
// 原始文档 ID用于删除原表数据
OriginalId string `bson:"originalId" json:"originalId"`
}
// ConversationES ES 索引文档结构
type ConversationES struct {
Id string `json:"id"` // MongoDB 原始 ID
UserId string `json:"userId"` // 用户ID
Platform string `json:"platform"` // 平台
SessionId string `json:"sessionId"` // Session ID
Question string `json:"question"` // 问题
Answer string `json:"answer"` // 回复
MessageId string `json:"messageId"` // 消息ID
MsgTime time.Time `json:"msgTime"` // 消息时间
TenantId string `json:"tenantId"` // 租户ID
CreatedAt time.Time `json:"createdAt"` // 创建时间
UpdatedAt time.Time `json:"updatedAt"` // 更新时间
ArchivedAt time.Time `json:"archivedAt"` // 归档时间
}
// ConversationESMapping ES 索引映射
const ConversationESMapping = `
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"id": { "type": "keyword" },
"userId": { "type": "keyword" },
"platform": { "type": "keyword" },
"sessionId": { "type": "keyword" },
"question": { "type": "text", "analyzer": "standard" },
"answer": { "type": "text", "analyzer": "standard" },
"messageId": { "type": "keyword" },
"msgTime": { "type": "date" },
"tenantId": { "type": "keyword" },
"createdAt": { "type": "date" },
"updatedAt": { "type": "date" },
"archivedAt": { "type": "date" }
}
}
}
`
// ConversationESIndex ES 索引名
const ConversationESIndex = "conversations"