Initial commit

This commit is contained in:
2025-06-16 17:49:27 +10:00
commit 34beb51c2c
7 changed files with 164 additions and 0 deletions

35
models/call.go Normal file
View File

@@ -0,0 +1,35 @@
package models
import (
"time"
"gorm.io/gorm"
)
type DBCall struct {
gorm.Model
AfterCallWorkRequired bool
Confined bool
ConnectedTime *time.Time `gorm:"index"`
Direction string
DisconnectReasons string `gorm:"type:json"`
DisconnectType string
DisconnectedTime *time.Time `gorm:"index"`
Held bool
Id string `gorm:"primaryKey;index"`
InitialState string
Muted bool
Other string `gorm:"type:json"`
ParticipantId string `gorm:"foreignKey;index"`
PeerId string
Provider string
Recording bool
RecordingState string
SecurePause bool
Self string `gorm:"type:json"`
State string
}
func (DBCall) TableName() string {
return "gc_calls"
}

31
models/conversation.go Normal file
View File

@@ -0,0 +1,31 @@
package models
import (
"time"
"gorm.io/gorm"
)
type DBConversation struct {
gorm.Model
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
SemiLiveUpdate *time.Time
JobUpdate *time.Time
}
func (DBConversation) TableName() string {
return "gc_conversations"
}

30
models/participant.go Normal file
View File

@@ -0,0 +1,30 @@
package models
import (
"time"
"gorm.io/gorm"
)
type DBParticipant struct {
gorm.Model
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
}
func (DBParticipant) TableName() string {
return "gc_participants"
}

24
models/segment.go Normal file
View File

@@ -0,0 +1,24 @@
package models
import (
"time"
"gorm.io/gorm"
)
type DBSegment struct {
gorm.Model
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
}
func (DBSegment) TableName() string {
return "gc_segments"
}

25
models/session.go Normal file
View File

@@ -0,0 +1,25 @@
package models
import "gorm.io/gorm"
type DBSession struct {
gorm.Model
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
}
func (DBSession) TableName() string {
return "gc_sessions"
}