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:自定义时间,20最近N年"`
	StartDate string  `description:"自定义开始日期"`
	EndDate   string  `description:"自定义结束日期"`
	StartYear int     `description:"最近N年里的N"`
	LeftMin   float64 `description:"图表左侧最小值"`
	LeftMax   float64 `description:"图表左侧最大值"`
}

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

type Percentile struct {
	CalculateValue int    `description:"时间长度期数"`
	CalculateUnit  string `description:"时间长度频度"`
	PercentType    int    `description:"百分位:0-数据区间(兼容历史数据); 1-数据个数;"`
}

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的话,就是另存为,不会建立与配置的关系"`
}

// EditChartInfoBaseReq 编辑图表基础信息
type EditChartInfoBaseReq struct {
	ChartInfoId int    `description:"图表ID"`
	ChartName   string `description:"英文名称(根据当前语言版本不同而不同)"`
}