package request

import "eta/eta_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:"配置规则列表"`
	DataDateType string       `description:"数据日期类型,枚举值:交易日、自然日"`
	StartYear    int          `description:"当选择的日期类型为最近N年类型时,即date_type=20, 用start_year表示N"`
}

// 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:"配置规则列表"`

	DataDateType string  `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:"值"`
	EmptyType    int                          `description:"空值处理类型(0查找前后35天,1不计算,2前值填充,3后值填充,4等于0)"`
	MaxEmptyType int                          `description:"MAX、MIN公式空值处理类型(1、等于0;2、跳过空值)"`
	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:"最小值"`
}