18c9354095
- 注入数据库、运行时配置、统一响应、文件存储和平台 AI 能力,补充业务读写工具与客户快捷操作契约。 - 移除模块内重复的组织、客户、工单、标签、技能、旧工作流、MCP 和迁移实现,将身份权限与业务主体交由宿主管理。 - 使用 libSQL 重构向量存储,并完善图片消息、访客身份、排队调度、企业微信和支持聊天页面。 - 统一 HTTP、DTO 与 WebSocket 的 snake_case 协议,补齐模块初始化、业务动作和公共载荷等回归测试。
86 lines
3.2 KiB
Go
86 lines
3.2 KiB
Go
package response
|
|
|
|
import (
|
|
"code.tczkiot.com/wlw/ai-agent/internal/models"
|
|
"code.tczkiot.com/wlw/ai-agent/internal/pkg/enums"
|
|
"code.tczkiot.com/wlw/ai-agent/internal/pkg/utils"
|
|
)
|
|
|
|
type ChannelResponse struct {
|
|
ID int64 `json:"id"`
|
|
ChannelType string `json:"channel_type"`
|
|
ChannelID string `json:"channel_id"`
|
|
AIAgentID int64 `json:"ai_agent_id"`
|
|
AIAgentRolloutPercent int `json:"ai_agent_rollout_percent"`
|
|
PreviousAIAgentRolloutPercent int `json:"previous_ai_agent_rollout_percent"`
|
|
AIAgentName string `json:"ai_agent_name,omitempty"`
|
|
Name string `json:"name"`
|
|
ConfigJSON string `json:"config_json"`
|
|
Status enums.Status `json:"status"`
|
|
Remark string `json:"remark"`
|
|
}
|
|
|
|
type WxWorkKFAccountResponse struct {
|
|
OpenKfID string `json:"open_kf_id"`
|
|
Name string `json:"name"`
|
|
Avatar string `json:"avatar"`
|
|
ManagePrivilege bool `json:"manage_privilege"`
|
|
}
|
|
|
|
type ChannelMessageOutboxResponse struct {
|
|
ID int64 `json:"id"`
|
|
ChannelType string `json:"channel_type"`
|
|
ConversationID int64 `json:"conversation_id"`
|
|
MessageID int64 `json:"message_id"`
|
|
Payload string `json:"payload"`
|
|
SendStatus string `json:"send_status"`
|
|
RetryCount int `json:"retry_count"`
|
|
NextRetryAt string `json:"next_retry_at"`
|
|
LastError string `json:"last_error"`
|
|
SentAt string `json:"sent_at"`
|
|
CreatedAt string `json:"created_at"`
|
|
UpdatedAt string `json:"updated_at"`
|
|
CreateUserName string `json:"create_user_name"`
|
|
UpdateUserName string `json:"update_user_name"`
|
|
}
|
|
|
|
func BuildChannelResponse(item *models.Channel) ChannelResponse {
|
|
if item == nil {
|
|
return ChannelResponse{}
|
|
}
|
|
return ChannelResponse{
|
|
ID: item.ID,
|
|
ChannelType: item.ChannelType,
|
|
ChannelID: item.ChannelID,
|
|
AIAgentID: item.AIAgentID,
|
|
AIAgentRolloutPercent: item.AIAgentRolloutPercent,
|
|
PreviousAIAgentRolloutPercent: item.PreviousAIAgentRolloutPercent,
|
|
Name: item.Name,
|
|
ConfigJSON: item.ConfigJSON,
|
|
Status: item.Status,
|
|
Remark: item.Remark,
|
|
}
|
|
}
|
|
|
|
func BuildChannelMessageOutboxResponse(item *models.ChannelMessageOutbox) ChannelMessageOutboxResponse {
|
|
if item == nil {
|
|
return ChannelMessageOutboxResponse{}
|
|
}
|
|
return ChannelMessageOutboxResponse{
|
|
ID: item.ID,
|
|
ChannelType: item.ChannelType,
|
|
ConversationID: item.ConversationID,
|
|
MessageID: item.MessageID,
|
|
Payload: item.Payload,
|
|
SendStatus: item.SendStatus,
|
|
RetryCount: item.RetryCount,
|
|
NextRetryAt: utils.FormatTimePtr(item.NextRetryAt),
|
|
LastError: item.LastError,
|
|
SentAt: utils.FormatTimePtr(item.SentAt),
|
|
CreatedAt: utils.FormatTime(item.CreatedAt),
|
|
UpdatedAt: utils.FormatTime(item.UpdatedAt),
|
|
CreateUserName: item.CreateUserName,
|
|
UpdateUserName: item.UpdateUserName,
|
|
}
|
|
}
|