diff --git a/models/crm_client.go b/models/crm_client.go new file mode 100644 index 0000000..7f75579 --- /dev/null +++ b/models/crm_client.go @@ -0,0 +1,47 @@ +package models + +import ( + "time" +) + +type CrmClient struct { + ID int `gorm:"primaryKey;column:id" json:"id"` + BillingGroupNumber *int `gorm:"column:billing_group_number" json:"billing_group_number"` + DrawdownCurrentBalance *float64 `gorm:"column:drawdown_current_balance" json:"drawdown_current_balance"` + DrawdownInitialBalance *float64 `gorm:"column:drawdown_initial_balance" json:"drawdown_initial_balance"` + ContractExpiry *time.Time `gorm:"column:contract_expiry;type:date" json:"contract_expiry"` + CreatedDate *time.Time `gorm:"column:created_date;type:date" json:"created_date"` + MBIE *bool `gorm:"column:mbie" json:"mbie"` + FundingAvailable *bool `gorm:"column:funding_available" json:"funding_available"` + DrawdownClient *bool `gorm:"column:drawdown_client" json:"drawdown_client"` + CostCentreRequired *bool `gorm:"column:cost_centre_required" json:"cost_centre_required"` + CallsRecordings *bool `gorm:"column:calls_recordings" json:"calls_recordings"` + ABNNZBMNumber *string `gorm:"column:abn_nzbm_number" json:"abn_nzbm_number"` + AccountsPayableEmail *string `gorm:"column:accounts_payable_email" json:"accounts_payable_email"` + BillingGroup *string `gorm:"column:billing_group" json:"billing_group"` + BusinessAddress *string `gorm:"column:business_address" json:"business_address"` + Name *string `gorm:"column:name" json:"name"` + Notes *string `gorm:"column:notes" json:"notes"` + Owner *string `gorm:"column:owner" json:"owner"` + PhoneNumber *string `gorm:"column:phone_number" json:"phone_number"` + ServicePhone *string `gorm:"column:service_phone" json:"service_phone"` + Status *string `gorm:"column:status" json:"status"` + ContactName *string `gorm:"column:contact_name" json:"contact_name"` + ContractSigned *string `gorm:"column:contract_signed" json:"contract_signed"` + CreatedBy *string `gorm:"column:created_by" json:"created_by"` + DrawdownPONumber *string `gorm:"column:drawdown_po_number" json:"drawdown_po_number"` + GenderPreference *string `gorm:"column:gender_preference" json:"gender_preference"` + GSTNumber *string `gorm:"column:gst_number" json:"gst_number"` + InvoiceConfig *string `gorm:"column:invoice_config" json:"invoice_config"` + CustomerReference *string `gorm:"column:customer_reference" json:"customer_reference"` + PartnerName *string `gorm:"column:partner_name" json:"partner_name"` + POReference *string `gorm:"column:po_reference" json:"po_reference"` + PostalAddress *string `gorm:"column:postal_address" json:"postal_address"` + SearchPattern *string `gorm:"column:search_pattern" json:"search_pattern"` + State *string `gorm:"column:state" json:"state"` + ReportEmails *string `gorm:"column:report_emails" json:"report_emails"` +} + +func (CrmClient) TableName() string { + return "live_clients" +} diff --git a/models/crm_interpreter.go b/models/crm_interpreter.go new file mode 100644 index 0000000..3a3662e --- /dev/null +++ b/models/crm_interpreter.go @@ -0,0 +1,66 @@ +package models + +import ( + "time" +) + +type CrmInterpreter struct { + ID int `gorm:"primaryKey;column:id" json:"id"` + ABN *string `gorm:"column:abn" json:"abn"` + AccountNumber *string `gorm:"column:account_number" json:"account_number"` + AccountStatus *string `gorm:"column:account_status" json:"account_status"` + Address *string `gorm:"column:address" json:"address"` + BankName *string `gorm:"column:bank_name" json:"bank_name"` + BSB *string `gorm:"column:bsb" json:"bsb"` + ContractStatus *string `gorm:"column:contract_status" json:"contract_status"` + BirthCountry *string `gorm:"column:birth_country" json:"birth_country"` + CreatedBy *string `gorm:"column:created_by" json:"created_by"` + CurrentPhone *string `gorm:"column:current_phone" json:"current_phone"` + DateOfBirth *string `gorm:"column:date_of_birth" json:"date_of_birth"` + Email *string `gorm:"column:email" json:"email"` + EmployedBy *string `gorm:"column:employed_by" json:"employed_by"` + EnrolmentDate *string `gorm:"column:enrolment_date" json:"enrolment_date"` + FinanceTasksCompleted *bool `gorm:"column:finance_tasks_completed" json:"finance_tasks_completed"` + GST *bool `gorm:"column:gst" json:"gst"` + NZGovApproved *bool `gorm:"column:nz_gov_approved" json:"nz_gov_approved"` + NaatiListed *bool `gorm:"column:naati_listed" json:"naati_listed"` + PersonalCV *bool `gorm:"column:personal_cv" json:"personal_cv"` + PinViaSMS *bool `gorm:"column:pin_via_sms" json:"pin_via_sms"` + VaxFluCheck *bool `gorm:"column:vax_flu_check" json:"vax_flu_check"` + WorkingWithChildren *bool `gorm:"column:working_with_children" json:"working_with_children"` + LastContactAttempt *time.Time `gorm:"column:last_contact_attempt" json:"last_contact_attempt"` + MigrationYear *time.Time `gorm:"column:migration_year" json:"migration_year"` + FirstName *string `gorm:"column:first_name" json:"first_name"` + Gender *string `gorm:"column:gender" json:"gender"` + FullName *string `gorm:"column:full_name" json:"full_name"` + Owner *string `gorm:"column:owner" json:"owner"` + TranslationType *string `gorm:"column:translation_type" json:"translation_type"` + Status *string `gorm:"column:status" json:"status"` + GSTNumber *string `gorm:"column:gst_number" json:"gst_number"` + LastName *string `gorm:"column:last_name" json:"last_name"` + Layout *string `gorm:"column:layout" json:"layout"` + ModifiedBy *string `gorm:"column:modified_by" json:"modified_by"` + NaatiCertification *string `gorm:"column:naati_certification" json:"naati_certification"` + NaatiCertificationID *string `gorm:"column:naati_certification_id" json:"naati_certification_id"` + Notes *string `gorm:"column:notes" json:"notes"` + NZBN *string `gorm:"column:nzbn" json:"nzbn"` + Password *string `gorm:"column:password" json:"password"` + PaymentState *string `gorm:"column:payment_state" json:"payment_state"` + PhotoID *string `gorm:"column:photo_id" json:"photo_id"` + PhotoIDExpiry *string `gorm:"column:photo_id_expiry" json:"photo_id_expiry"` + Pin *string `gorm:"column:pin" json:"pin"` + PoliceCheck *string `gorm:"column:police_check" json:"police_check"` + PoliceCheckExpiry *string `gorm:"column:police_check_expiry" json:"police_check_expiry"` + Postcode *string `gorm:"column:postcode" json:"postcode"` + Priority *string `gorm:"column:priority" json:"priority"` + State *string `gorm:"column:state" json:"state"` + Status2 *string `gorm:"column:status_2" json:"status_2"` + Suburb *string `gorm:"column:suburb" json:"suburb"` + Tag *string `gorm:"column:tag" json:"tag"` + VaxCovidCheck *string `gorm:"column:vax_covid_check" json:"vax_covid_check"` + CRMID *string `gorm:"column:crm_id" json:"crm_id"` +} + +func (CrmInterpreter) TableName() string { + return "live_interpreters" +} diff --git a/models/crm_invoice_config.go b/models/crm_invoice_config.go new file mode 100644 index 0000000..02d8569 --- /dev/null +++ b/models/crm_invoice_config.go @@ -0,0 +1,34 @@ +package models + +import () + +type CrmInvoiceConfig struct { + ID string `gorm:"primaryKey;column:id" json:"id"` + Name string `gorm:"column:name;not null" json:"name"` + BHEndHour *int `gorm:"column:bh_end_hour" json:"bh_end_hour"` + BHEndMinute *int `gorm:"column:bh_end_minute" json:"bh_end_minute"` + BHStartHour *int `gorm:"column:bh_start_hour" json:"bh_start_hour"` + BHStartMinute *int `gorm:"column:bh_start_minute" json:"bh_start_minute"` + MaximumDuration *int `gorm:"column:maximum_duration" json:"maximum_duration"` + MinimumDuration *int `gorm:"column:minimum_duration" json:"minimum_duration"` + OnDemandAH *string `gorm:"column:on_demand_ah" json:"on_demand_ah"` + OnDemandBH *string `gorm:"column:on_demand_bh" json:"on_demand_bh"` + AudioBookingAH *string `gorm:"column:audio_booking_ah" json:"audio_booking_ah"` + AudioBookingBH *string `gorm:"column:audio_booking_bh" json:"audio_booking_bh"` + VideoBookingAH *string `gorm:"column:video_booking_ah" json:"video_booking_ah"` + VideoBookingBH *string `gorm:"column:video_booking_bh" json:"video_booking_bh"` + PartnerOnDemandAH *string `gorm:"column:partner_on_demand_ah" json:"partner_on_demand_ah"` + PartnerOnDemandBH *string `gorm:"column:partner_on_demand_bh" json:"partner_on_demand_bh"` + PartnerAudioBookingAH *string `gorm:"column:partner_audio_booking_ah" json:"partner_audio_booking_ah"` + 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"` + PartnerVideoBookingBH *string `gorm:"column:partner_video_booking_bh" json:"partner_video_booking_bh"` + 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"` + SplitOnDemand *bool `gorm:"column:split_on_demand" json:"split_on_demand"` +} + +func (CrmInvoiceConfig) TableName() string { + return "live_invoice_configs" +} diff --git a/models/crm_language.go b/models/crm_language.go new file mode 100644 index 0000000..44624b8 --- /dev/null +++ b/models/crm_language.go @@ -0,0 +1,12 @@ +package models + +type CrmLanguage struct { + ID int `gorm:"primaryKey;column:id" json:"id"` + Name *string `gorm:"column:name" json:"name"` + Active *bool `gorm:"column:active" json:"active"` + CRMID *string `gorm:"column:crm_id" json:"crm_id"` +} + +func (CrmLanguage) TableName() string { + return "live_languages" +} diff --git a/models/crm_language_lookup.go b/models/crm_language_lookup.go new file mode 100644 index 0000000..849e9be --- /dev/null +++ b/models/crm_language_lookup.go @@ -0,0 +1,22 @@ +package models + +import "time" + +type CrmLanguageLookup struct { + ID string `gorm:"primaryKey;column:id" json:"id"` + Language *string `gorm:"column:language" json:"language"` + CustomRateFunction *string `gorm:"column:custom_rate_function" json:"custom_rate_function"` + Interpreter *string `gorm:"column:interpreter" json:"interpreter"` + NaatiDescription *string `gorm:"column:naati_description" json:"naati_description"` + NaatiNumber *string `gorm:"column:naati_number" json:"naati_number"` + NaatiExpiry *time.Time `gorm:"column:naati_expiry;type:date" json:"naati_expiry"` + NaatiLevel *int `gorm:"column:naati_level" json:"naati_level"` + Priority *int `gorm:"column:priority" json:"priority"` + Searchable *bool `gorm:"column:searchable" json:"searchable"` + WorkingTowardsNaati *bool `gorm:"column:working_towards_naati" json:"working_towards_naati"` + PaymentConfiguration *string `gorm:"column:payment_configuration" json:"payment_configuration"` +} + +func (CrmLanguageLookup) TableName() string { + return "live_language_lookups" +} diff --git a/models/crm_payment_config.go b/models/crm_payment_config.go new file mode 100644 index 0000000..7de3157 --- /dev/null +++ b/models/crm_payment_config.go @@ -0,0 +1,18 @@ +package models + +type CrmPaymentConfig struct { + ID string `gorm:"primaryKey;column:id" json:"id"` + Name string `gorm:"column:name;not null" json:"name"` + BHEndHour *int `gorm:"column:bh_end_hour" json:"bh_end_hour"` + BHEndMinute *int `gorm:"column:bh_end_minute" json:"bh_end_minute"` + BHStartHour *int `gorm:"column:bh_start_hour" json:"bh_start_hour"` + BHStartMinute *int `gorm:"column:bh_start_minute" json:"bh_start_minute"` + OnDemand *string `gorm:"column:on_demand" json:"on_demand"` + AudioBooking *string `gorm:"column:audio_booking" json:"audio_booking"` + VideoBooking *string `gorm:"column:video_booking" json:"video_booking"` + TimeZone *string `gorm:"column:time_zone" json:"time_zone"` +} + +func (CrmPaymentConfig) TableName() string { + return "live_payment_configs" +} diff --git a/models/processed.go b/models/processed.go new file mode 100644 index 0000000..709d557 --- /dev/null +++ b/models/processed.go @@ -0,0 +1,45 @@ +package models + +import ( + "time" +) + +type Processed struct { + ClientConversationId string `gorm:"index"` + InterpreterConversationId string `gorm:"primaryKey;index"` + CallType string `gorm:"index"` + GenderPreference string + LanguageId int + ClientId int `gorm:"index"` + CustomerDnis string + CustomerAni string + InterpreterId int + SearchStartTime time.Time `gorm:"index"` + ClientIndex int + NesIndex int + P2ConnectTimeUtc time.Time `gorm:"index"` + P2DisconnectTimeUtc time.Time `gorm:"index"` + P1ConnectTimeUtc time.Time `gorm:"index"` + P1DisconnectTimeUtc time.Time `gorm:"index"` + P3ConnectTimeUtc *time.Time + P3DisconnectTimeUtc *time.Time + BookingRequestNumber *int `gorm:"index"` + IvrData *int + UtsEntries int + InterpreterCount int + Flags *string `gorm:"type:json"` + Metadata *string `gorm:"type:json"` + // Client data + ClientCrmData string `gorm:"type:json"` + InvoiceConfigCrmData string `gorm:"type:json"` + LanguageCrmData string `gorm:"type:json"` + InterpreterCrmData string `gorm:"type:json"` + LanguageLookupCrmData string `gorm:"type:json"` + VicTimezoneData string `gorm:"type:json"` + NzTimezoneData string `gorm:"type:json"` + LocalTimezoneData string `gorm:"type:json"` +} + +func (Processed) TableName() string { + return "gc_processed" +} diff --git a/models/ticket.go b/models/ticket.go new file mode 100644 index 0000000..4afccd6 --- /dev/null +++ b/models/ticket.go @@ -0,0 +1,67 @@ +package models + +import "time" + +type Ticket struct { + TicketID string `gorm:"primaryKey;column:ticket_id" json:"ticket_id"` + TicketReferenceID *string `gorm:"column:ticket_reference_id" json:"ticket_reference_id"` + DepartmentID *string `gorm:"column:department_id" json:"department_id"` + AccountID *string `gorm:"column:account_id" json:"account_id"` + ContactID *string `gorm:"column:contact_id" json:"contact_id"` + Email *string `gorm:"column:email" json:"email"` + Phone *string `gorm:"column:phone" json:"phone"` + Subject *string `gorm:"column:subject" json:"subject"` + Description *string `gorm:"column:description" json:"description"` + Status *string `gorm:"column:status" json:"status"` + ProductID *string `gorm:"column:product_id" json:"product_id"` + TicketOwnerID *string `gorm:"column:ticket_owner_id" json:"ticket_owner_id"` + CreatedBy *string `gorm:"column:created_by" json:"created_by"` + ModifiedBy *string `gorm:"column:modified_by" json:"modified_by"` + CreatedTime *time.Time `gorm:"column:created_time" json:"created_time"` + OnHoldTime *time.Time `gorm:"column:on_hold_time" json:"on_hold_time"` + ClosedTime *time.Time `gorm:"column:closed_time" json:"closed_time"` + ModifiedTime *time.Time `gorm:"column:modified_time" json:"modified_time"` + TeamID *string `gorm:"column:team_id" json:"team_id"` + DueDate *time.Time `gorm:"column:due_date" json:"due_date"` + Tags *string `gorm:"column:tags" json:"tags"` + Priority *string `gorm:"column:priority" json:"priority"` + IsOverdue *bool `gorm:"column:is_overdue" json:"is_overdue"` + IsEscalated *bool `gorm:"column:is_escalated" json:"is_escalated"` + Classification *string `gorm:"column:classification" json:"classification"` + Resolution *string `gorm:"column:resolution" json:"resolution"` + TimeToRespond *int `gorm:"column:time_to_respond" json:"time_to_respond"` + Category *string `gorm:"column:category" json:"category"` + Subcategory *string `gorm:"column:subcategory" json:"subcategory"` + Subclassification *string `gorm:"column:subclassification" json:"subclassification"` + BookingNumber *int `gorm:"column:booking_number" json:"booking_number"` + CostCode *string `gorm:"column:cost_code" json:"cost_code"` + LanguageRequired *string `gorm:"column:language_required" json:"language_required"` + TimeZone *string `gorm:"column:time_zone" json:"time_zone"` + DeliveryMethod *string `gorm:"column:delivery_method" json:"delivery_method"` + DurationInMinutes *int `gorm:"column:duration_in_minutes" json:"duration_in_minutes"` + InterpreterID *int `gorm:"column:interpreter_id" json:"interpreter_id"` + InterpreterEmail *string `gorm:"column:interpreter_email" json:"interpreter_email"` + InterpreterName *string `gorm:"column:interpreter_name" json:"interpreter_name"` + ClientID *int `gorm:"column:client_id" json:"client_id"` + ClientName *string `gorm:"column:client_name" json:"client_name"` + InterpreterNaati *int `gorm:"column:interpreter_naati" json:"interpreter_naati"` + SecondaryInterpreterID *int `gorm:"column:secondary_interpreter_id" json:"secondary_interpreter_id"` + PayCycle *int `gorm:"column:pay_cycle" json:"pay_cycle"` + BookingTime *time.Time `gorm:"column:booking_time" json:"booking_time"` + BillingGroup *string `gorm:"column:billing_group" json:"billing_group"` + VideoLink *string `gorm:"column:video_link" json:"video_link"` + ConversationID *string `gorm:"column:conversation_id" json:"conversation_id"` + DNIS *string `gorm:"column:dnis" json:"dnis"` + ClientAgentName *string `gorm:"column:client_agent_name" json:"client_agent_name"` + ClientAgentPhone *string `gorm:"column:client_agent_phone" json:"client_agent_phone"` + ClientAgentEmail *string `gorm:"column:client_agent_email" json:"client_agent_email"` + BillingCode *string `gorm:"column:billing_code" json:"billing_code"` + MBIEFeedback *string `gorm:"column:mbie_feedback" json:"mbie_feedback"` + BookingComments *string `gorm:"column:booking_comments" json:"booking_comments"` + AdditionalPrebookingInformation *string `gorm:"column:additional_prebooking_information" json:"additional_prebooking_information"` + ForceUpdate *bool `gorm:"column:force_update" json:"force_update"` +} + +func (Ticket) TableName() string { + return "live_tickets" +}