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, } }