Compare commits

...

7 Commits

7 changed files with 81 additions and 9 deletions

View File

@@ -19,8 +19,11 @@ type DBConversation struct {
Start *time.Time `gorm:"index"`
UtilizationLabelId *string
LiveUpdate *time.Time
DetailsUpdate *time.Time
SemiLiveUpdate *time.Time
JobUpdate *time.Time
Participants []DBParticipant `gorm:"foreignKey:ConversationId;references:Id"`
}
func (DBConversation) TableName() string {

View File

@@ -0,0 +1,67 @@
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

@@ -20,6 +20,8 @@ type DBParticipant struct {
Wrapup *string `gorm:"type:json"`
WrapupExpected *bool
WrapupRequired *bool
Sessions []DBSession `gorm:"foreignKey:ParticipantId;references:Id"`
}
func (DBParticipant) TableName() string {

View File

@@ -7,7 +7,8 @@ type DBQueueLog struct {
ConversationId string `gorm:"primaryKey"`
Start time.Time `gorm:"index"`
End time.Time `gorm:"index"`
Result string `gorm:"type:json"`
Duration float64
Result string `gorm:"type:json"`
}
func (DBQueueLog) TableName() string {

View File

@@ -1,5 +1,10 @@
package models
type AnalyticsConversationWithAttributesQuery struct {
Conversations []AnalyticsConversationWithAttributes `json:"conversations"`
Cursor *string `json:"cursor"`
}
type AnalyticsConversationWithAttributes struct {
ConversationEnd string `json:"conversationEnd"`
ConversationId string `json:"conversationId"`

View File

@@ -15,6 +15,8 @@ type DBSession struct {
Recording bool
RemoteNameDisplayable string
SessionDnis string
Segments []DBSegment `gorm:"foreignKey:SessionId;references:Id"`
}
func (DBSession) TableName() string {

View File

@@ -33,8 +33,6 @@ func ExtractWithoutAttributes(base models.AnalyticsConversationWithoutAttributes
}
divisionIdsBytesStr := string(divisionIdsBytes)
currentTime := time.Now()
conversation := models.DBConversation{
DivisionIds: &divisionIdsBytesStr,
End: endTime,
@@ -43,7 +41,6 @@ func ExtractWithoutAttributes(base models.AnalyticsConversationWithoutAttributes
MinRFactor: &base.MediaStatsMinConversationRFactor,
OriginatingDirection: &base.OriginatingDirection,
Start: startTime,
SemiLiveUpdate: &currentTime,
}
var participants []models.DBParticipant
var sessions []models.DBSession
@@ -129,7 +126,6 @@ func ExtractWithoutAttributes(base models.AnalyticsConversationWithoutAttributes
}
func ExtractLive(base models.NotificationConversationWithAttributes) (models.DBConversation, []models.DBParticipant, []models.DBCall) {
currentTime := time.Now()
conversation := models.DBConversation{
Id: base.Id,
@@ -138,7 +134,6 @@ func ExtractLive(base models.NotificationConversationWithAttributes) (models.DBC
RecordingState: &base.RecordingState,
SecurePause: &base.SecurePause,
UtilizationLabelId: &base.UtilizationLabelId,
LiveUpdate: &currentTime,
}
var participants []models.DBParticipant
@@ -284,8 +279,6 @@ func ExtractWithAttributes(base models.AnalyticsConversationWithAttributes) (mod
}
divisionIdsBytesStr := string(divisionIdsBytes)
currentTime := time.Now()
conversation := models.DBConversation{
DivisionIds: &divisionIdsBytesStr,
End: endTime,
@@ -294,7 +287,6 @@ func ExtractWithAttributes(base models.AnalyticsConversationWithAttributes) (mod
MinRFactor: &base.MediaStatsMinConversationRFactor,
OriginatingDirection: &base.OriginatingDirection,
Start: startTime,
JobUpdate: &currentTime,
}
var participants []models.DBParticipant
var sessions []models.DBSession