Compare commits

...

14 Commits

11 changed files with 203 additions and 21 deletions

View File

@@ -9,23 +9,9 @@ type DBAmendment struct {
AmendmentValue string AmendmentValue string
Requestor string Requestor string
RequestedAt time.Time RequestedAt time.Time
Sequence string
} }
func (DBAmendment) TableName() string { func (DBAmendment) TableName() string {
return "gc_amendments" return "gc_amendments"
} }
type DBAmendmentLog struct {
Id int `gorm:"primaryKey;autoIncrement"`
ConversationId string `gorm:"index"`
AmendmentColumn string
OldValue string
NewValue string
Requestor string
RequestedAt time.Time
AmendedAt time.Time
}
func (DBAmendmentLog) TableName() string {
return "gc_amendment_logs"
}

View File

@@ -1,5 +1,6 @@
package models package models
/*
import ( import (
"time" "time"
) )
@@ -26,3 +27,4 @@ type BaseCall struct {
func (BaseCall) TableName() string { func (BaseCall) TableName() string {
return "gc_base_calls" return "gc_base_calls"
} }
*/

28
models/booking.go Normal file
View File

@@ -0,0 +1,28 @@
package models
import "time"
type Booking struct {
BookingReference int `gorm:"primaryKey;index"`
BookingTime *time.Time `gorm:"index"`
Timezone *string
Language *string
CustomData *string
Method *string `gorm:"index"`
Duration *int
BookedDuration *int
ConversationId *string `gorm:"index"`
CancellationTime *time.Time
InterpreterId *int `gorm:"index"`
ClientId *int `gorm:"index"`
AgentName *string
AgentEmail *string
AgentPhone *string
Comments *string
BillingCode *string
TicketId string
}
func (Booking) TableName() string {
return "gc_bookings"
}

View File

@@ -1,5 +1,6 @@
package models package models
/*
import ( import (
"time" "time"
) )
@@ -25,3 +26,4 @@ type CallStat struct {
func (CallStat) TableName() string { func (CallStat) TableName() string {
return "gc_call_stats" return "gc_call_stats"
} }
*/

View File

@@ -23,8 +23,8 @@ type CrmInvoiceConfig struct {
PartnerAudioBookingBH *string `gorm:"column:partner_audio_booking_bh" json:"partner_audio_booking_bh"` PartnerAudioBookingBH *string `gorm:"column:partner_audio_booking_bh" json:"partner_audio_booking_bh"`
PartnerVideoBookingAH *string `gorm:"column:partner_video_booking_ah" json:"partner_video_booking_ah"` PartnerVideoBookingAH *string `gorm:"column:partner_video_booking_ah" json:"partner_video_booking_ah"`
PartnerVideoBookingBH *string `gorm:"column:partner_video_booking_bh" json:"partner_video_booking_bh"` PartnerVideoBookingBH *string `gorm:"column:partner_video_booking_bh" json:"partner_video_booking_bh"`
RoundingFunction *string `gorm:"column:rounding_function" json:"rounding_function"`
RoundBookings *bool `gorm:"column:round_bookings" json:"round_bookings"` RoundBookings *bool `gorm:"column:round_bookings" json:"round_bookings"`
RoundingFunction *bool `gorm:"column:rounding_function" json:"rounding_function"`
SplitBookings *bool `gorm:"column:split_bookings" json:"split_bookings"` SplitBookings *bool `gorm:"column:split_bookings" json:"split_bookings"`
SplitOnDemand *bool `gorm:"column:split_on_demand" json:"split_on_demand"` SplitOnDemand *bool `gorm:"column:split_on_demand" json:"split_on_demand"`
} }

93
models/formatter.go Normal file
View File

@@ -0,0 +1,93 @@
package models
import "time"
type BaseCall struct {
ClientConversationId string `gorm:"primaryKey;index"`
CallType string `gorm:"index"`
GenderPreference string
ClientId int `gorm:"index"`
LanguageId int
CustomerDnis string
CustomerAni string
SearchStartTime *time.Time
P1ConnectTime time.Time `gorm:"index"`
P1DisconnectTime time.Time `gorm:"index"`
P3ConnectTime *time.Time
P3DisconnectTime *time.Time
BookingRequestNumber *int `gorm:"index"`
IvrData *int
UtsEntries int
InterpreterCount int
Status string
}
func (BaseCall) TableName() string {
return "gc_base_calls"
}
type InterpreterAttempt struct {
InterpreterConversationId string `gorm:"primaryKey;index"`
InterpreterResponseTime time.Time
InterpreterAccepted bool
InterpreterId int `gorm:"index"`
CallType string
CallConnected string
ClientConversationId string `gorm:"index"`
LanguageId int
InterpreterPhone string
ConversationStart time.Time
ConversationEnd time.Time
}
func (InterpreterAttempt) TableName() string {
return "gc_interpreter_attempts"
}
type InterpreterConnection struct {
InterpreterConversationId string `gorm:"primaryKey;index"`
InterpreterAccepted bool
InterpreterId int `gorm:"index"`
CallType string
CallConnected string
ClientConversationId string `gorm:"index"`
LanguageId int
InterpreterPhone string
ConferenceStart time.Time
ConferenceEnd time.Time
}
func (InterpreterConnection) TableName() string {
return "gc_interpreter_connections"
}
type CallStat struct {
ClientConversationId string `gorm:"primaryKey;index"`
CallType string `gorm:"index"`
ClientId int `gorm:"index"`
CustomerDnis string
CustomerAni string
ConversationStart *time.Time `gorm:"index"`
ConversationEnd *time.Time `gorm:"index"`
SearchStartTime *time.Time
P1ConnectTime time.Time `gorm:"index"`
P1DisconnectTime time.Time `gorm:"index"`
BookingRequestNumber *int `gorm:"index"`
UtsQueue bool
InterpreterAcceptedCount int
InterpreterAccepted bool
InterpreterConnectedCount int
InterpreterConnected bool
ClientDisconnected bool
UtsDuration int
UtsEntries int
Status string
SubStatus string
FirstLanguageId int
LastLanguageId int
FirstInterpreter string
}
func (CallStat) TableName() string {
return "gc_call_stats"
}

View File

@@ -1,5 +1,6 @@
package models package models
/*
import ( import (
"time" "time"
) )
@@ -21,3 +22,4 @@ type InterpreterAttempt struct {
func (InterpreterAttempt) TableName() string { func (InterpreterAttempt) TableName() string {
return "gc_interpreter_attempts" return "gc_interpreter_attempts"
} }
*/

View File

@@ -1,5 +1,6 @@
package models package models
/*
import ( import (
"time" "time"
) )
@@ -20,3 +21,4 @@ type InterpreterConnection struct {
func (InterpreterConnection) TableName() string { func (InterpreterConnection) TableName() string {
return "gc_interpreter_connections" return "gc_interpreter_connections"
} }
*/

View File

@@ -20,7 +20,7 @@ type DBClientProcessed struct {
// --- // ---
BuggedCall bool BuggedCall bool
Amended bool Amended bool
CreatedAt time.Time CreatedAt time.Time `gorm:"autoCreateTime"`
ModifiedAt time.Time ModifiedAt time.Time
CustomData *string `gorm:"type:json"` CustomData *string `gorm:"type:json"`
InternalUse *string `gorm:"type:json"` InternalUse *string `gorm:"type:json"`
@@ -54,7 +54,7 @@ type DBClientProcessed struct {
// PARTNER DETAILS: // PARTNER DETAILS:
// --- // ---
PartnerBill float64 PartnerBill float64
ParnterRate float64 PartnerRate float64
// TIMESTAMP DETAILS: // TIMESTAMP DETAILS:
// --- // ---
@@ -85,7 +85,7 @@ type DBInterpreterProcessed struct {
// --- // ---
BuggedCall bool BuggedCall bool
Amended bool Amended bool
CreatedAt time.Time CreatedAt time.Time `gorm:"autoCreateTime"`
ModifiedAt time.Time ModifiedAt time.Time
CustomData *string `gorm:"type:json"` CustomData *string `gorm:"type:json"`
InternalUse *string `gorm:"type:json"` InternalUse *string `gorm:"type:json"`

View File

@@ -2,6 +2,73 @@ package models
import "time" import "time"
type DBTicket struct {
AccountId int
ApprovalCount int
Assignee string `gorm:"type:json"`
AssigneeId int
AttachmentCount int
Category string
CF string `gorm:"type:json"`
Channel string
ChannelCode string
ChannelRelatedInfo string
Classification string
ClosedTime *time.Time
CommentCount int
Contact string `gorm:"type:json"`
ContactId int
CreatedBy int
CreatedTime time.Time
CustomerResponseTime time.Time
DepartmentId int
DescAttachments string `gorm:"type:json"`
Description string
DueDate *time.Time
Email string
EntitySkills string `gorm:"type:json"`
FirstThread string `gorm:"type:json"`
FollowerCount int
Id string `gorm:"primaryKey"`
IsArchived bool
IsDeleted bool
IsEscalated bool
IsOverdue bool
IsResponseOverdue bool
IsSpam bool
IsTrashed bool
Language string
LayoutDetails string `gorm:"type:json"`
LayoutId int
ModifiedBy int
ModifiedTime time.Time
OnHoldTime *time.Time
Phone string
Priority string
ProductId string
Resolution string
ResponseDueDate *time.Time
SecondaryContacts string `gorm:"type:json"`
Sentiment string
SharedDepartments string `gorm:"type:json"`
Source string `gorm:"type:json"`
Status string
StatusType string
SubCategory string
Subject string
TagCount int
TaskCount int
TeamId int
ThreadCount int
TicketNumber int
TimeEntryCount int
WebUrl string
}
func (DBTicket) TableName() string {
return "zoho_live_tickets"
}
type Ticket struct { type Ticket struct {
TicketID string `gorm:"primaryKey;column:ticket_id" json:"ticket_id"` TicketID string `gorm:"primaryKey;column:ticket_id" json:"ticket_id"`
TicketReferenceID *string `gorm:"column:ticket_reference_id" json:"ticket_reference_id"` TicketReferenceID *string `gorm:"column:ticket_reference_id" json:"ticket_reference_id"`

View File

@@ -22,9 +22,9 @@ func ExtractWithoutAttributes(base models.AnalyticsConversationWithoutAttributes
var endTime *time.Time var endTime *time.Time
parsedEndTime, err := time.Parse(time.RFC3339, base.ConversationEnd) parsedEndTime, err := time.Parse(time.RFC3339, base.ConversationEnd)
if err != nil { if err != nil {
startTime = nil endTime = nil
} else { } else {
startTime = &parsedEndTime endTime = &parsedEndTime
} }
divisionIdsBytes, err := json.Marshal(base.DivisionIds) divisionIdsBytes, err := json.Marshal(base.DivisionIds)