package request

// SaveMultipleGraphConfigReq 多图配置请求
type SaveMultipleGraphConfigReq struct {
	MultipleGraphConfigId int                   `description:"配置id"`
	EdbInfoId             int                   `description:"指标"`
	Curve                 CurveConfig           `description:"曲线图配置"`
	StandardDeviation     StandardDeviation     `description:"标准差配置"`
	Percentile            Percentile            `description:"百分位配置"`
	FrequencyDistribution FrequencyDistribution `description:"频率分布配置"`
}

// ConfigSave 数据库保存
type ConfigSave struct {
	Curve                 CurveConfig           `description:"曲线图配置"`
	StandardDeviation     StandardDeviation     `description:"标准差配置"`
	Percentile            Percentile            `description:"百分位配置"`
	FrequencyDistribution FrequencyDistribution `description:"频率分布配置"`
}

// CurveConfig 曲线图配置
type CurveConfig struct {
	DateType  int     `description:"日期类型:1:00年至今,2:10年至今,3:15年至今，4：年初至今，5:自定义时间"`
	StartDate string  `description:"自定义开始日期"`
	EndDate   string  `description:"自定义结束日期"`
	LeftMin   float64 `description:"图表左侧最小值"`
	LeftMax   float64 `description:"图表左侧最大值"`
}

type StandardDeviation struct {
	CalculateValue int `description:"滚动期数"`
}

type Percentile struct {
	CalculateValue int    `description:"时间长度期数"`
	CalculateUnit  string `description:"时间长度频度"`
}

type FrequencyDistribution struct {
	//最近3月 最近6月 最近1年 最近2年 最近3年 最近5年 最近10年
	DateType       int    `description:"日期类型:1:最近3月；2:最近6月；3:最近1年；4:最近2年；5:最近3年；6:最近5年；7:最近10年，8:自定义时间"`
	StartDate      string `description:"自定义开始日期"`
	EndDate        string `description:"自定义结束日期"`
	FrequencyValue int    `description:"频段数，10/20"`
}

// LineChartInfoReq 线性拟合图表预览请求数据
type LineChartInfoReq struct {
	DateType       int    `description:"日期类型"`
	StartDate      string `description:"开始日期"`
	EndDate        string `description:"结束日期"`
	XEdbInfoIdList []int  `description:"X轴的指标id列表"`
	YEdbInfoIdList []int  `description:"Y轴的指标id列表"`
	Source         int    `description:"来源,1:曲线图，8：标准差图表；9：百分位图表；10：频率分布图表；"`
}

type AddChartInfoReq struct {
	MultipleGraphConfigId int              `description:"统一配置id,有的话就是编辑，没有则是新增"`
	BatchAddChart         []AddChart       `description:"批量创建图的信息"`
	ExtraConfig           LineChartInfoReq `description:"图表额外配置信息"`
}

type AddChart struct {
	Source          int    `description:"来源,1:曲线图，8：标准差图表；9：百分位图表；10：频率分布图表；"`
	ChartClassifyId int    `description:"分类id"`
	ChartName       string `description:"图表名称"`
	LeftMin         string `description:"图表左侧最小值"`
	LeftMax         string `description:"图表左侧最大值"`
	ChartImage      string `description:"图表截图，复制的时候才用到" json:"-"`
}

// EditChartEnInfoReq 编辑图表英文信息
type EditChartEnInfoReq struct {
	ChartInfoId int    `description:"图表ID"`
	ChartNameEn string `description:"英文图表名称"`
}

// SaveMultipleGraphChartReq 多图配置的单图保存请求
type SaveMultipleGraphChartReq struct {
	Source                int                   `description:"来源,1:曲线图，8：标准差图表；9：百分位图表；10：频率分布图表；"`
	ChartName             string                `description:"图表名称"`
	ClassifyId            int                   `description:"分类id"`
	MultipleGraphConfigId int                   `description:"配置id"`
	EdbInfoId             int                   `description:"指标"`
	Curve                 CurveConfig           `description:"曲线图配置"`
	StandardDeviation     StandardDeviation     `description:"标准差配置"`
	Percentile            Percentile            `description:"百分位配置"`
	FrequencyDistribution FrequencyDistribution `description:"频率分布配置"`
	IsSaveAs              bool                  `description:"是否另存为，true的话，就是另存为，不会建立与配置的关系"`
}

// SaveMultipleGraphEdbReq 多图配置的单指标保存请求
type SaveMultipleGraphEdbReq struct {
	EdbName    string `description:"指标名称"`
	Frequency  string `description:"频度"`
	Unit       string `description:"单位"`
	ClassifyId int    `description:"分类id"`

	MultipleGraphConfigId int                   `description:"配置id"`
	Source                int                   `description:"来源,1:曲线图，8：标准差图表；9：百分位图表；10：频率分布图表；"`
	EdbInfoId             int                   `description:"指标"`
	Curve                 CurveConfig           `description:"曲线图配置"`
	StandardDeviation     StandardDeviation     `description:"标准差配置"`
	Percentile            Percentile            `description:"百分位配置"`
	FrequencyDistribution FrequencyDistribution `description:"频率分布配置"`
	IsSaveAs              bool                  `description:"是否另存为，true的话，就是另存为，不会建立与配置的关系"`
}
