gorm_models/models/booking.go

54 lines
2.7 KiB
Go

package models
import "time"
// Booking is used to store data relating to any interpreter booking. It is the output of the bookings formatter, and contains re-maps of existing ticket data.
//
// - BookingReference is the reference number the client will use when they call in. It is also the numeric ticket ID from Zoho.
// - BookingTime is the nominated time for the booking in TODO: what timezone is BookingTime in?
// - Timezone is the customer specified timezone for the above booking time.
// - Language is the foreign language requirement from the customer.
// - CustomData contains any special customer data, typically from the cost code field in the ticket.
// - Method is the type of booking: audio, video, in-person, etc.
// - Duration is the currently specified length of the booking after any changes.
// - BookedDuration is the initially nominated length of the booking.
// - ConversationId is an optional field for a GenesysCloud conversation ID to be manually linked to the ticket.
// - CancellationTime is the optional timestamp at which the customer or agent cancelled the request for the booking.
// - InterpreterId is the 4-digit identifier of the interpreter selected for the prebooking.
// - ClientId is the 5-digit identifier of the client who placed the prebooking.
// - AgentName is the customer supplied name of the individual who requested the prebooking.
// - AgentEmail is the customer supplied email address of the individual who requested the prebooking.
// - AgentPhone is the customer supplied phone number of the individual who requested the prebooking.
// - Comments contains any additional information supplied by the individual who requested the prebooking.
// - BillingCode is an internal use field that indicates the current billing status and who should be paid/charged.
// - TicketId is the Zoho internal use ID (not to be confused with the BookingReference or ticket number).
//
// Table Schema:
//
// Primary Key: BookingReference
// Indexes: BookingReference, BookingTime, Method, ConversationId, InterpreterId, ClientId
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"
}