package model import "time" // ChatGroup 群聊 type ChatGroup struct { ID string `json:"id" gorm:"primaryKey;type:varchar(36)"` UserID string `json:"user_id" gorm:"type:varchar(36);index"` Name string `json:"name" gorm:"type:varchar(100)"` Description string `json:"description" gorm:"type:text"` AgentIDs string `json:"agent_ids" gorm:"type:text"` // JSON数组,存储群聊中的Agent ID列表 Status string `json:"status" gorm:"type:varchar(20);default:'active'"` // active/archived CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } func (ChatGroup) TableName() string { return "chat_groups" } // CreateGroupRequest 创建群聊请求 type CreateGroupRequest struct { UserID string `json:"user_id"` Name string `json:"name" binding:"required"` Description string `json:"description"` AgentIDs string `json:"agent_ids" binding:"required"` // JSON数组格式 } // UpdateGroupRequest 更新群聊请求 type UpdateGroupRequest struct { Name string `json:"name"` Description string `json:"description"` AgentIDs string `json:"agent_ids"` Status string `json:"status"` } // GroupChatRequest 群聊对话请求 type GroupChatRequest struct { Message string `json:"message" binding:"required"` AgentIDs string `json:"agent_ids"` // 可选,覆盖群聊中配置的Agent SessionID string `json:"session_id"` // 可选,关联的会话ID } // GroupChatResponse 群聊对话响应 type GroupChatResponse struct { SessionID string `json:"session_id"` Reply string `json:"reply"` DurationMs int `json:"duration_ms"` TokensUsed int `json:"tokens_used"` Strategy string `json:"strategy"` SubtaskResults []SubtaskResult `json:"subtask_results"` } // SubtaskResult 子任务结果 type SubtaskResult struct { AgentID string `json:"agent_id"` AgentName string `json:"agent_name"` Reply string `json:"reply"` TokensUsed int `json:"tokens_used"` DurationMs int `json:"duration_ms"` } // GroupListResponse 群聊列表响应 type GroupListResponse struct { List []ChatGroup `json:"list"` Total int64 `json:"total"` }