2026-04-09 10:01:23 +08:00
|
|
|
package response
|
|
|
|
|
|
2026-08-21 00:41:07 +08:00
|
|
|
import "code.tczkiot.com/wlw/ai-agent/internal/pkg/enums"
|
2026-04-09 10:01:23 +08:00
|
|
|
|
|
|
|
|
type ConversationParticipantResponse struct {
|
|
|
|
|
ID int64 `json:"id"`
|
2026-08-28 22:23:13 +08:00
|
|
|
ParticipantType string `json:"participant_type"`
|
|
|
|
|
ParticipantID int64 `json:"participant_id"`
|
|
|
|
|
ExternalParticipantID string `json:"external_participant_id,omitempty"`
|
|
|
|
|
JoinedAt string `json:"joined_at,omitempty"`
|
|
|
|
|
LeftAt string `json:"left_at,omitempty"`
|
2026-04-09 10:01:23 +08:00
|
|
|
Status enums.Status `json:"status"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type ConversationResponse struct {
|
|
|
|
|
ID int64 `json:"id"`
|
2026-08-28 22:23:13 +08:00
|
|
|
AIAgentID int64 `json:"ai_agent_id"`
|
|
|
|
|
ChannelID int64 `json:"channel_id"`
|
|
|
|
|
CustomerType string `json:"customer_type"`
|
|
|
|
|
CustomerID int64 `json:"customer_id"`
|
|
|
|
|
CustomerExternalID string `json:"customer_external_id"`
|
|
|
|
|
CustomerName string `json:"customer_name"`
|
2026-04-09 10:01:23 +08:00
|
|
|
Status enums.IMConversationStatus `json:"status"`
|
2026-08-28 22:23:13 +08:00
|
|
|
ServiceMode enums.IMConversationServiceMode `json:"service_mode"`
|
2026-04-09 10:01:23 +08:00
|
|
|
Priority int `json:"priority"`
|
2026-08-28 22:23:13 +08:00
|
|
|
CurrentAssigneeID int64 `json:"current_assignee_id"`
|
|
|
|
|
CurrentAssigneeName string `json:"current_assignee_name,omitempty"`
|
|
|
|
|
CurrentTeamID int64 `json:"current_team_id"`
|
|
|
|
|
CurrentTeamName string `json:"current_team_name,omitempty"`
|
|
|
|
|
LastMessageID int64 `json:"last_message_id"`
|
|
|
|
|
LastMessageAt string `json:"last_message_at,omitempty"`
|
|
|
|
|
LastActiveAt string `json:"last_active_at,omitempty"`
|
|
|
|
|
LastMessageSummary string `json:"last_message_summary,omitempty"`
|
|
|
|
|
CustomerUnreadCount int `json:"customer_unread_count"`
|
|
|
|
|
AgentUnreadCount int `json:"agent_unread_count"`
|
|
|
|
|
CustomerLastReadMessageID int64 `json:"customer_last_read_message_id"`
|
|
|
|
|
CustomerLastReadAt string `json:"customer_last_read_at,omitempty"`
|
|
|
|
|
AgentLastReadMessageID int64 `json:"agent_last_read_message_id"`
|
|
|
|
|
AgentLastReadAt string `json:"agent_last_read_at,omitempty"`
|
|
|
|
|
CustomerOnline bool `json:"customer_online"`
|
|
|
|
|
QueueEnteredAt string `json:"queue_entered_at,omitempty"`
|
|
|
|
|
QueuePosition int `json:"queue_position"`
|
|
|
|
|
QueueAheadCount int `json:"queue_ahead_count"`
|
|
|
|
|
QueueWaitingCount int `json:"queue_waiting_count"`
|
|
|
|
|
QueueWaitSeconds int64 `json:"queue_wait_seconds"`
|
|
|
|
|
QueueEstimatedWaitSeconds int64 `json:"queue_estimated_wait_seconds"`
|
|
|
|
|
QueueEscalationLevel int `json:"queue_escalation_level"`
|
|
|
|
|
EffectivePriority int `json:"effective_priority"`
|
|
|
|
|
QueueServiceOnline bool `json:"queue_service_online"`
|
|
|
|
|
ClosedAt string `json:"closed_at,omitempty"`
|
|
|
|
|
ClosedBy int64 `json:"closed_by"`
|
|
|
|
|
ClosedByName string `json:"closed_by_name,omitempty"`
|
|
|
|
|
CloseReason string `json:"close_reason,omitempty"`
|
2026-04-09 10:01:23 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type ConversationDetailResponse struct {
|
|
|
|
|
ConversationResponse
|
|
|
|
|
Participants []ConversationParticipantResponse `json:"participants,omitempty"`
|
|
|
|
|
}
|