package request

import "hongze/hz_crm_api/models/data_manage"

// PredictEdbInfoChartDataReq 获取预测指标绘图数据请求
type PredictEdbInfoChartDataReq struct {
	SourceEdbInfoId int          `description:"来源指标id"`
	PredictEndDate  string       `description:"预测截止日期"`
	RuleType        int          `description:"预测规则，1：最新，2：固定值"`
	FixedValue      float64      `description:"固定值"`
	DateType        int          `description:"日期类型:1:00年至今,2:10年至今,3:15年至今，4：年初至今，5:自定义时间,6:自定义起始时间至今，7：18年至今,8:19年至今,9:20年至今,10:全部"`
	StartDate       string       `description:"自定义开始日期"`
	EndDate         string       `description:"自定义结束日期"`
	Calendar        string       `description:"公历/农历"`
	ChartType       int          `description:"生成样式:1:曲线图,2:季节性图"`
	SeasonStartDate string       `description:"季节性图开始日期"`
	SeasonEndDate   string       `description:"季节性图结束日期"`
	RuleList        []RuleConfig `description:"配置规则列表"`
}

// AddPredictEdbInfoReq 添加预测指标请求
type AddPredictEdbInfoReq struct {
	ClassifyId      int          `description:"分类id"`
	SourceEdbInfoId int          `description:"来源指标id"`
	EdbName         string       `description:"指标名称"`
	EndDate         string       `description:"预测截止日期"`
	RuleType        int          `description:"预测规则，1：最新，2：固定值"`
	FixedValue      float64      `description:"固定值"`
	RuleList        []RuleConfig `description:"配置规则列表"`

	MaxValue  float64 `description:"最大值"`
	MinValue  float64 `description:"最小值"`
	EdbInfoId int     `description:"指标ID"`
	AdminId   int     `description:"添加人id"`
	AdminName string  `description:"添加人名称"`
}

// RuleConfig 预测规则配置
type RuleConfig struct {
	RuleType     int                          `description:"预测规则，1：最新，2：固定值，3：同比，4：同差，5：环比，6：环差，7：N期移动均值，8：N期段线性外推值，9：动态环差"`
	Value        string                       `description:"值"`
	EndDate      string                       `description:"截止日期"`
	EdbInfoIdArr []data_manage.EdbInfoFromTag `description:"指标信息"`
}

// EditPredictEdbInfoReq 编辑预测指标请求
type EditPredictEdbInfoReq struct {
	EdbInfoId  int          `description:"指标ID"`
	ClassifyId int          `description:"分类id"`
	EdbName    string       `description:"指标名称"`
	EndDate    string       `description:"预测截止日期"`
	RuleType   int          `description:"预测规则，1：最新，2：固定值"`
	FixedValue float64      `description:"固定值"`
	RuleList   []RuleConfig `description:"配置规则列表"`
}

// ModifyPredictEdbInfoReq 修改预测指标基础信息请求
type ModifyPredictEdbInfoReq struct {
	EdbInfoId int     `description:"指标ID"`
	MaxValue  float64 `description:"最大值"`
	MinValue  float64 `description:"最小值"`
}
