package model

//QueueParams 队列参数
type QueueParams struct {
	Queue            string         `json:"queue"`
	Max              string         `json:"max"`
	Strategy         string         `json:"strategy"`
	Calls            string         `json:"calls"`
	Holdtime         string         `json:"holdtime"`
	TalkTime         string         `json:"talkTime"`
	Completed        string         `json:"completed"`
	Abandoned        string         `json:"abandoned"`
	ServiceLevel     string         `json:"serviceLevel"`
	ServicelevelPerf string         `json:"servicelevelPerf"`
	Weight           string         `json:"weight"`
	Members          []*QueueMember `json:"members"`
	Entrys           []*QueueEntry  `json:"entrys"`
}

//QueueMember 队列成员
type QueueMember struct {
	Queue          string `json:"queue"`
	Name           string `json:"name"`
	Location       string `json:"location"`
	StateInterface string `json:"stateInterface"`
	Membership     string `json:"membership"`
	Penalty        string `json:"penalty"`
	CallsTaken     string `json:"callsTaken"`
	LastCall       string `json:"lastCall"`
	InCall         string `json:"inCall"`
	Status         string `json:"status"`
	Paused         string `json:"paused"`
	PausedReason   string `json:"pausedReason"`
}

type QueueEntry struct {
	CallerIDName      string `json:"callerIDName"`
	CallerIDNum       string `json:"callerIDNumber"`
	Channel           string `json:"channel"`
	ConnectedLineName string `json:"connectedLineName"`
	ConnectedLineNum  string `json:"connectedLineNumber"`
	Event             string `json:"event"`
	Position          string `json:"position"`
	Priority          string `json:"priority"`
	Queue             string `json:"queue"`
	Uniqueid          string `json:"uniqueid"`
	Wait              string `json:"wait"`
}

type QueueCallerJoin struct {
	CallerIDName      string `json:"callerIDName"`
	CallerIDNum       string `json:"callerIDNumber"`
	Channel           string `json:"channel"`
	ConnectedLineName string `json:"connectedLineName"`
	ConnectedLineNum  string `json:"connectedLineNumber"`
	Event             string `json:"event"`
	Position          string `json:"position"`
	Priority          string `json:"priority"`
	Queue             string `json:"queue"`
	Uniqueid          string `json:"uniqueid"`
	Count             string `json:"count"`
}

type QueueCallerAbandon struct {
	CallerIDName      string `json:"callerIDName"`
	CallerIDNum       string `json:"callerIDNumber"`
	Channel           string `json:"channel"`
	ConnectedLineName string `json:"connectedLineName"`
	ConnectedLineNum  string `json:"connectedLineNumber"`
	Event             string `json:"event"`
	Position          string `json:"position"`
	Priority          string `json:"priority"`
	Queue             string `json:"queue"`
	Uniqueid          string `json:"uniqueid"`
	HoldTime          string `json:"holdTime"`
}

type QueueCallerLeave struct {
	CallerIDName      string `json:"callerIDName"`
	CallerIDNum       string `json:"callerIDNumber"`
	Channel           string `json:"channel"`
	ConnectedLineName string `json:"connectedLineName"`
	ConnectedLineNum  string `json:"connectedLineNumber"`
	Event             string `json:"event"`
	Position          string `json:"position"`
	Priority          string `json:"priority"`
	Queue             string `json:"queue"`
	Uniqueid          string `json:"uniqueid"`
	Count             string `json:"count"`
}
