refactor: 将客服后端重构为宿主可嵌入模块
- 注入数据库、运行时配置、统一响应、文件存储和平台 AI 能力,补充业务读写工具与客户快捷操作契约。 - 移除模块内重复的组织、客户、工单、标签、技能、旧工作流、MCP 和迁移实现,将身份权限与业务主体交由宿主管理。 - 使用 libSQL 重构向量存储,并完善图片消息、访客身份、排队调度、企业微信和支持聊天页面。 - 统一 HTTP、DTO 与 WebSocket 的 snake_case 协议,补齐模块初始化、业务动作和公共载荷等回归测试。
This commit is contained in:
@@ -2,25 +2,25 @@ package response
|
||||
|
||||
type DashboardOverviewResponse struct {
|
||||
Range string `json:"range"`
|
||||
GeneratedAt string `json:"generatedAt"`
|
||||
GeneratedAt string `json:"generated_at"`
|
||||
Summary DashboardSummaryResponse `json:"summary"`
|
||||
ConversationStats DashboardSectionStatsResponse `json:"conversationStats"`
|
||||
AgentStats DashboardAgentStatsResponse `json:"agentStats"`
|
||||
AIStats DashboardAIStatsResponse `json:"aiStats"`
|
||||
ConversationStats DashboardSectionStatsResponse `json:"conversation_stats"`
|
||||
AgentStats DashboardAgentStatsResponse `json:"agent_stats"`
|
||||
AIStats DashboardAIStatsResponse `json:"ai_stats"`
|
||||
Alerts []DashboardAlertResponse `json:"alerts"`
|
||||
QuickLinks []DashboardQuickLinkResponse `json:"quickLinks"`
|
||||
QuickLinks []DashboardQuickLinkResponse `json:"quick_links"`
|
||||
}
|
||||
|
||||
type DashboardSummaryResponse struct {
|
||||
TodayNewConversations int64 `json:"todayNewConversations"`
|
||||
ProcessingConversations int64 `json:"processingConversations"`
|
||||
PendingDispatchConversations int64 `json:"pendingDispatchConversations"`
|
||||
OnlineAgents int64 `json:"onlineAgents"`
|
||||
AIServiceRate float64 `json:"aiServiceRate"`
|
||||
TodayNewConversations int64 `json:"today_new_conversations"`
|
||||
ProcessingConversations int64 `json:"processing_conversations"`
|
||||
PendingDispatchConversations int64 `json:"pending_dispatch_conversations"`
|
||||
OnlineAgents int64 `json:"online_agents"`
|
||||
AIServiceRate float64 `json:"ai_service_rate"`
|
||||
}
|
||||
|
||||
type DashboardSectionStatsResponse struct {
|
||||
StatusDistribution []DashboardStatusDistributionItem `json:"statusDistribution"`
|
||||
StatusDistribution []DashboardStatusDistributionItem `json:"status_distribution"`
|
||||
Trend []DashboardTrendItem `json:"trend"`
|
||||
}
|
||||
|
||||
@@ -32,39 +32,39 @@ type DashboardStatusDistributionItem struct {
|
||||
|
||||
type DashboardTrendItem struct {
|
||||
Date string `json:"date"`
|
||||
NewCount int64 `json:"newCount"`
|
||||
ClosedCount int64 `json:"closedCount"`
|
||||
NewCount int64 `json:"new_count"`
|
||||
ClosedCount int64 `json:"closed_count"`
|
||||
}
|
||||
|
||||
type DashboardAgentStatsResponse struct {
|
||||
OnlineAgents int64 `json:"onlineAgents"`
|
||||
BusyAgents int64 `json:"busyAgents"`
|
||||
OfflineAgents int64 `json:"offlineAgents"`
|
||||
TeamLoads []DashboardTeamLoadResponse `json:"teamLoads"`
|
||||
OnlineAgents int64 `json:"online_agents"`
|
||||
BusyAgents int64 `json:"busy_agents"`
|
||||
OfflineAgents int64 `json:"offline_agents"`
|
||||
TeamLoads []DashboardTeamLoadResponse `json:"team_loads"`
|
||||
}
|
||||
|
||||
type DashboardTeamLoadResponse struct {
|
||||
TeamID int64 `json:"teamId"`
|
||||
TeamName string `json:"teamName"`
|
||||
TotalAgents int64 `json:"totalAgents"`
|
||||
OnlineAgents int64 `json:"onlineAgents"`
|
||||
BusyAgents int64 `json:"busyAgents"`
|
||||
OfflineAgents int64 `json:"offlineAgents"`
|
||||
WaitingConversations int64 `json:"waitingConversations"`
|
||||
ProcessingConversations int64 `json:"processingConversations"`
|
||||
MaxConcurrentCapacity int64 `json:"maxConcurrentCapacity"`
|
||||
LoadRate float64 `json:"loadRate"`
|
||||
HasScheduleNow bool `json:"hasScheduleNow"`
|
||||
TeamID int64 `json:"team_id"`
|
||||
TeamName string `json:"team_name"`
|
||||
TotalAgents int64 `json:"total_agents"`
|
||||
OnlineAgents int64 `json:"online_agents"`
|
||||
BusyAgents int64 `json:"busy_agents"`
|
||||
OfflineAgents int64 `json:"offline_agents"`
|
||||
WaitingConversations int64 `json:"waiting_conversations"`
|
||||
ProcessingConversations int64 `json:"processing_conversations"`
|
||||
MaxConcurrentCapacity int64 `json:"max_concurrent_capacity"`
|
||||
LoadRate float64 `json:"load_rate"`
|
||||
HasScheduleNow bool `json:"has_schedule_now"`
|
||||
}
|
||||
|
||||
type DashboardAIStatsResponse struct {
|
||||
EnabledAIAgents int64 `json:"enabledAiAgents"`
|
||||
EnabledChannels int64 `json:"enabledChannels"`
|
||||
TodayKnowledgeRetrieves int64 `json:"todayKnowledgeRetrieves"`
|
||||
TodayKnowledgeRetrieveFailCount int64 `json:"todayKnowledgeRetrieveFailCount"`
|
||||
TodayKnowledgeRetrieveFailRate float64 `json:"todayKnowledgeRetrieveFailRate"`
|
||||
TodayAgentRunFailCount int64 `json:"todayAgentRunFailCount"`
|
||||
TodayAIHandoffCount int64 `json:"todayAiHandoffCount"`
|
||||
EnabledAIAgents int64 `json:"enabled_ai_agents"`
|
||||
EnabledChannels int64 `json:"enabled_channels"`
|
||||
TodayKnowledgeRetrieves int64 `json:"today_knowledge_retrieves"`
|
||||
TodayKnowledgeRetrieveFailCount int64 `json:"today_knowledge_retrieve_fail_count"`
|
||||
TodayKnowledgeRetrieveFailRate float64 `json:"today_knowledge_retrieve_fail_rate"`
|
||||
TodayAgentRunFailCount int64 `json:"today_agent_run_fail_count"`
|
||||
TodayAIHandoffCount int64 `json:"today_ai_handoff_count"`
|
||||
}
|
||||
|
||||
type DashboardAlertResponse struct {
|
||||
|
||||
Reference in New Issue
Block a user