Added flow to sessions and removed ExtractWithAttributes

This commit is contained in:
2025-06-20 09:31:21 +10:00
parent 804b9b2792
commit d66df080fe
4 changed files with 143 additions and 189 deletions

View File

@@ -1,67 +0,0 @@
package models
import "time"
type Conversation struct {
Address *string
DivisionIds *string `gorm:"type:json"`
End *time.Time `gorm:"index"`
ExternalTag *string
Id string `gorm:"primaryKey;index"`
MinMos *float32
MinRFactor *float32
OriginatingDirection *string
RecentTransfers *string `gorm:"type:json"`
RecordingState *string
SecurePause *bool
Start *time.Time `gorm:"index"`
UtilizationLabelId *string
LiveUpdate *time.Time
DetailsUpdate *time.Time
SemiLiveUpdate *time.Time
JobUpdate *time.Time
Participants []struct {
Address *string
Attributes *string `gorm:"type:json"`
ConnectedTime *time.Time `gorm:"index"`
ConversationId string `gorm:"foreignKey;index"`
EndTime *time.Time `gorm:"index"`
ExternalContactId *string
ExternalContactInitialDivisionId *string
Id string `gorm:"primaryKey;index"`
MediaRoles *string `gorm:"type:json"`
Name *string `gorm:"index"`
Purpose *string `gorm:"index"`
QueueId *string
Wrapup *string `gorm:"type:json"`
WrapupExpected *bool
WrapupRequired *bool
Sessions []struct {
Ani string
Direction string
Dnis string
EdgeId string
Id string `gorm:"primaryKey;index"`
MediaEndpointStats string `gorm:"type:json"`
MediaType string
Metrics string `gorm:"type:json"`
ParticipantId string `gorm:"foreignKey;index"`
ProtocolCallId string
Provider string
Recording bool
RemoteNameDisplayable string
SessionDnis string
Segments []struct {
Id string `gorm:"primaryKey;index"`
Conference bool
DisconnectType string
Q850ResponseCodes string `gorm:"type:json"`
SegmentEnd time.Time `gorm:"index"`
SegmentStart time.Time `gorm:"index"`
SegmentType string `gorm:"index"`
SessionId string `gorm:"foreignKey"`
WrapUpCode string
}
}
}
}

View File

@@ -93,6 +93,20 @@ type AnalyticsConversationWithoutAttributes struct {
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"`

View File

@@ -15,6 +15,7 @@ type DBSession struct {
Recording bool
RemoteNameDisplayable string
SessionDnis string
Flow string `gorm:"type:json"`
Segments []DBSegment `gorm:"foreignKey:SessionId;references:Id"`
}