package request

// QuerySelection 查询参数
type QuerySelection struct {
	Product  string `json:"product"`   // 产品型号
	Lot      string `json:"lot"`       // 批号
	PBI      string `json:"pbi"`       // PBI
	SubBatch string `json:"sub_batch"` // 子批号
	Step     string `json:"step"`      // 工序
	WaferID  string `json:"wafer_id"`  // 片号
}

// Histogram 直方图
type Histogram struct {
	Selections        []string `json:"selections"` // 参数
	Product           string   `json:"product"`    // 产品型号
	Lot               string   `json:"lot"`        // 批号
	PBI               string   `json:"pbi"`        // PBI
	SubBatch          []string `json:"sub_batch"`  // 子批号
	WaferID           []string `json:"wafer_id"`   // 片号
	Step              string   `json:"step"`       // 工序
	Site              []string `json:"site"`
	Bin               []string `json:"bin"`
	Offset            float64  `json:"offset"` // 偏移量
	Average           float64  `json:"average"`
	StandardDeviation float64  `json:"standard_deviation"`
	SpliteSubBatch    bool     `json:"splite_sub_batch"`
	OnlyPass          bool     `json:"only_pass"`
	SpliteSite        bool     `json:"splite_site"`
	XMax              string   `json:"x_max"`
	XMin              string   `json:"x_min"`
}

// Scatter 散点图
type Scatter struct {
	//X string `json:"x"`
	//Y string `json:"y"`
	//Selections []string `json:"selections"` // 参数
	XYSelection    []XYSelection `json:"xy_selection"`
	Product        string        `json:"product"`   // 产品型号
	Lot            string        `json:"lot"`       // 批号
	PBI            string        `json:"pbi"`       // PBI
	SubBatch       []string      `json:"sub_batch"` // 子批号
	WaferID        []string      `json:"wafer_id"`
	Step           string        `json:"step"` // 工序
	Site           []string      `json:"site"`
	Bin            []string      `json:"bin"`
	SpliteSubBatch bool          `json:"splite_sub_batch"`
	OnlyPass       bool          `json:"only_pass"`
	SpliteSite     bool          `json:"splite_site"`
}

type XYSelection struct {
	X string `json:"x"`
	Y string `json:"y"`
}

type Pie struct {
	Selection   string        `json:"selection"` // 参数
	Product     string        `json:"product"`   // 产品型号
	Lot         string        `json:"lot"`       // 批号
	PBI         string        `json:"pbi"`       // PBI
	SubBatch    string        `json:"sub_batch"` // 子批号
	Max         string        `json:"max"`       // 最大值
	Min         string        `json:"min"`       // 最小值
	Step        string        `json:"step"`      // 工序
	Site        []string      `json:"site"`
	Bin         []string      `json:"bin"`
	PieInterval []PieInterval `json:"pie_interval"` // 分区间
}

type PieInterval struct {
	Name string `json:"name"` // 区间名称
	Max  string `json:"max"`  // 最大值
	Min  string `json:"min"`  // 最小值
}

type Line struct {
	Selection string   `json:"selection"` // 参数
	Product   string   `json:"product"`   // 产品型号
	Lot       string   `json:"lot"`       // 批号
	PBI       string   `json:"pbi"`       // PBI
	SubBatch  string   `json:"sub_batch"` // 子批号
	Step      string   `json:"step"`      // 工序
	Site      []string `json:"site"`
	Bin       []string `json:"bin"`
	Offset    string   `json:"offset"` // 偏移量
}

type CPMap struct {
	PBI            string           `json:"pbi"`
	Selection      []string         `json:"selection"` // 参数
	Product        string           `json:"product"`   // 产品型号
	SubBatch       string           `json:"sub_batch"` // 子批号
	Lot            string           `json:"lot"`       // 批号
	WaferID        string           `json:"wafer_id"`  // 片号
	Step           string           `json:"step"`      // 工序
	Site           []string         `json:"site"`
	SBin           []string         `json:"sbin"`
	HBin           []string         `json:"hbin"`
	SBinColor      []CPMapColor     `json:"sbin_color"`
	HBinColor      []CPMapColor     `json:"hbin_color"`
	SelectionColor []SelectionColor `json:"selection_color"`
}

type LogSiteChart struct {
	Product     string   `json:"product"`
	Lot         string   `json:"lot"`
	PBI         string   `json:"pbi"`
	SubBatch    string   `json:"sub_batch"` // 子批
	Step        string   `json:"step"`      // 工序
	Site        []string `json:"site"`
	Selection   string   `json:"selection"`
	ContentType string   `json:"content_type"` // 内容类型
	Bin         []string `json:"bin"`
}

type ProductInInterval struct {
	Product string   `json:"product"`
	Bin     []string `json:"bin"`
}

type CPMapColor struct {
	Color string `json:"color"` // Bin颜色
	Name  string `json:"name"`  // Bin名称
}

type SelectionColor struct {
	Name  string `json:"name"`  // 参数名称
	Color string `json:"color"` // 参数颜色
	Max   string `json:"max"`   // 参数范围最大值
	Min   string `json:"min"`   // 参数范围最小值
}

type SelectionLimit struct {
	PBI       string   `json:"pbi"`
	Product   string   `json:"product"`
	Lot       string   `json:"lot"`
	SubBatch  string   `json:"sub_batch"` // 子批
	WaferID   string   `json:"wafer_id"`
	Step      string   `json:"step"` // 工序
	Selection string   `json:"selection"`
	Site      []string `json:"site"`
	SBin      []string `json:"sbin"`
	HBin      []string `json:"hbin"`
}
