gorm_models/models/gencloud.go
2025-10-23 16:59:06 +11:00

206 lines
9.1 KiB
Go

package models
type AnalyticsConversationWithAttributesQuery struct {
Conversations []AnalyticsConversationWithAttributes `json:"conversations"`
Cursor *string `json:"cursor"`
}
type AnalyticsConversationWithAttributes struct {
ConversationEnd string `json:"conversationEnd"`
ConversationId string `json:"conversationId"`
ConversationStart string `json:"conversationStart"`
DivisionIds []string `json:"divisionIds"`
ExternalTag string `json:"externalTag"`
MediaStatsMinConversationMos float32 `json:"mediaStatsMinConversationMos"`
MediaStatsMinConversationRFactor float32 `json:"mediaStatsMinConversationRFactor"`
OriginatingDirection string `json:"originatingDirection"`
Participants []struct {
ExternalContactId string `json:"externalContactId"`
ParticipantId string `json:"id"`
ParticipantName string `json:"participantName"`
Purpose string `json:"purpose"`
Sessions []struct {
ANI string `json:"ani"`
Direction string `json:"direction"`
DNIS string `json:"dnis"`
EdgeId string `json:"edgeId"`
MediaType string `json:"mediaType"`
ProtocolCallId string `json:"protocolCallId"`
Provider string `json:"provider"`
Recording bool `json:"recording"`
RemoteNameDisplayable string `json:"remoteNameDisplayable"`
SessionDnis string `json:"sessionDnis"`
SessionId string `json:"sessionId"`
MediaEndpointStats []struct {
Codecs []string `json:"codecs"`
EventTime string `json:"eventTime"`
MaxLatencyMs int `json:"maxLatencyMs"`
MinMos float32 `json:"minMos"`
MinRFactor float32 `json:"minRFactor"`
ReceivedPackets int `json:"receivedPackets"`
} `json:"mediaEndpointStats"`
Metrics []struct {
EmitDate string `json:"emitDate"`
Name string `json:"name"`
Value int `json:"value"`
} `json:"metrics"`
Segments []struct {
Conference bool `json:"conference"`
DisconnectType string `json:"disconnectType"`
Q850ResponseCodes []int `json:"q850ResponseCodes"`
SegmentEnd string `json:"segmentEnd"`
SegmentStart string `json:"segmentStart"`
SegmentType string `json:"segmentType"`
WrapUpCode string `json:"wrapUpCode"`
} `json:"segments"`
} `json:"sessions"`
Attributes map[string]any `json:"attributes"`
} `json:"participants"`
}
type AnalyticsConversationWithoutAttributesQuery struct {
Conversations []AnalyticsConversationWithoutAttributes `json:"conversations"`
TotalHits int `json:"totalHits"`
}
type AnalyticsConversationWithoutAttributes struct {
ConversationId string `json:"conversationId"`
ConversationStart string `json:"conversationStart"`
ConversationEnd string `json:"conversationEnd"`
MediaStatsMinConversationMos float32 `json:"mediaStatsMinConversationMos"`
MediaStatsMinConversationRFactor float32 `json:"mediaStatsMinConversationRFactor"`
OriginatingDirection string `json:"originatingDirection"`
DivisionIds []string `json:"divisionIds"`
Participants []struct {
ParticipantId string `json:"participantId"`
UserId string `json:"userId"`
ParticipantName string `json:"participantName"`
Purpose string `json:"purpose"`
ExternalContactId string `json:"externalContactId"`
Sessions []struct {
MediaType string `json:"mediaType"`
SessionId string `json:"sessionId"`
ANI string `json:"ani"`
Direction string `json:"direction"`
DNIS string `json:"dnis"`
SessionDNIS string `json:"sessionDnis"`
EdgeId string `json:"edgeId"`
RemoteNameDisplayable string `json:"remoteNameDisplayable"`
Segments []struct {
SegmentStart string `json:"segmentStart"`
SegmentEnd string `json:"segmentEnd"`
WrapUpCode string `json:"wrapUpCode"`
DisconnectType string `json:"disconnectType"`
SegmentType string `json:"SegmentType"`
Q850ResponseCodes []int `json:"q850ResponseCodes"`
Conference bool `json:"conference"`
} `json:"segments"`
Flow struct {
EndingLanguage string `json:"endingLanguage"`
EntryReason string `json:"entryReason"`
EntryType string `json:"entryType"`
ExitReason string `json:"exitReason"`
FlowId string `json:"flowId"`
FlowName string `json:"flowName"`
FlowType string `json:"flowType"`
FlowVersion string `json:"flowVersion"`
StartingLanguage string `json:"startingLanguage"`
TransferTargetAddress string `json:"transferTargetAddress"`
TransferTargetName string `json:"transferTargetName"`
TransferType string `json:"transferType"`
} `json:"flow"`
Metrics []struct {
Name string `json:"name"`
Value int `json:"value"`
EmitDate string `json:"emitDate"`
} `json:"metrics"`
MediaEndpointStats []struct {
Codecs []string `json:"codecs"`
MinMos float32 `json:"minMos"`
MinRFactor float32 `json:"minRFactor"`
MaxLatencyMs int `json:"maxLatencyMs"`
ReceivedPackets int `json:"receivedPackets"`
} `json:"mediaEndpointStats"`
Recording bool `json:"recording"`
ProtocolCallId string `json:"protocolCallId"`
Provider string `json:"provider"`
} `json:"sessions"`
} `json:"participants"`
}
type NotificationConversationWithAttributes struct {
Address string `json:"address"`
Divisions []struct {
Division struct {
Id string `json:"id"`
SelfUri string `json:"selfUri"`
} `json:"division"`
Entities []struct {
DateDivisionUpdated string `json:"dateDivisionUpdated"`
Id string `json:"id"`
SelfUri string `json:"selfUri"`
} `json:"entities"`
} `json:"divisions"`
ExternalTag string `json:"externalTag"`
Id string `json:"id"`
Participants []struct {
Address string `json:"address"`
Attributes map[string]any `json:"attributes"`
Calls []struct {
AfterCallWorkRequired bool `json:"afterCallWorkRequired"`
Confined bool `json:"confined"`
ConnectedTime string `json:"connectedTime"`
Direction string `json:"direction"`
DisconnectReasons []struct{} `json:"disconnectReasons"`
DisconnectType string `json:"disconnectType"`
DisconnectedTime string `json:"disconnectedTime"`
Held bool `json:"held"`
Id string `json:"id"`
InitialState string `json:"initialState"`
Muted bool `json:"muted"`
Other map[string]any `json:"other"`
PeerId string `json:"peerId"`
Provider string `json:"provider"`
Recording bool `json:"recording"`
RecordingState string `json:"recordingState"`
SecurePause bool `json:"securePause"`
Self map[string]any `json:"self"`
State string `json:"state"`
} `json:"calls"`
ConnectedTime string `json:"connectedTime"`
EndTime string `json:"endTime"`
ExternalContactId string `json:"externalContactId"`
ExternalContactInitialDivisionId string `json:"externalContactInitialDivisionId"`
Id string `json:"id"`
MediaRoles []string `json:"mediaRoles"`
Name string `json:"name"`
Purpose string `json:"purpose"`
QueueId string `json:"queueId"`
Wrapup map[string]any `json:"wrapup"`
WrapupExpected bool `json:"wrapupExpected"`
WrapupRequired bool `json:"wrapupRequired"`
} `json:"participants"`
RecentTransfers []map[string]any `json:"recentTransfers"`
RecordingState string `json:"recordingState"`
SecurePause bool `json:"securePause"`
UtilizationLabelId string `json:"utilizationLabelId"`
}
type UsersQuery struct {
Entities []GCUser `json:"entities"`
PageSize int `json:"pageSize"`
Total int `json:"total"`
}
type GCUser struct {
Id string `json:"id" gorm:"primaryKey"`
Name string `json:"name"`
Email string `json:"email"`
State string `json:"state"`
Username string `json:"username"`
AcdAutoAnswer bool `json:"acdAutoAnswer"`
}
func (GCUser) TableName() string {
return "gc_users"
}