package models

import "time"

type EdbInfoResp struct {
	Ret     int    `json:"Ret"`
	Msg     string `json:"Msg"`
	ErrMsg  string `json:"ErrMsg"`
	ErrCode string `json:"ErrCode"`
	Data    struct {
		EdbInfoId        int       `json:"EdbInfoId"`
		SourceName       string    `json:"SourceName"`
		Source           int       `json:"Source"`
		EdbCode          string    `json:"EdbCode"`
		EdbName          string    `json:"EdbName"`
		EdbNameSource    string    `json:"EdbNameSource"`
		Frequency        string    `json:"Frequency"`
		Unit             string    `json:"Unit"`
		StartDate        string    `json:"StartDate"`
		EndDate          string    `json:"EndDate"`
		ClassifyId       int       `json:"ClassifyId"`
		SysUserId        int       `json:"SysUserId"`
		SysUserRealName  string    `json:"SysUserRealName"`
		UniqueCode       string    `json:"UniqueCode"`
		CreateTime       time.Time `json:"CreateTime"`
		ModifyTime       time.Time `json:"ModifyTime"`
		MinValue         float64   `json:"MinValue"`
		MaxValue         float64   `json:"MaxValue"`
		CalculateFormula string    `json:"CalculateFormula"`
		EdbType          int       `json:"EdbType"`
		Sort             int       `json:"Sort"`
		MoveType         int       `json:"MoveType"`
		MoveFrequency    string    `json:"MoveFrequency"`
		NoUpdate         int       `json:"NoUpdate"`
		ServerUrl        string    `json:"ServerUrl"`
		EdbInfoType      int       `json:"EdbInfoType"`
		EdbNameEn        string    `json:"EdbNameEn"`
		UnitEn           string    `json:"UnitEn"`
		LatestDate       string    `json:"LatestDate"`
		LatestValue      float64   `json:"LatestValue"`
		ChartImage       string    `json:"ChartImage"`
		Calendar         string    `json:"Calendar"`
		DataDateType     string    `json:"DataDateType"`
		CalculateList    []*EdbInfoCalculateMappingDetail
	} `json:"Data"`
	Success bool `json:"Success"`
}

type EdbInfoCalculateMappingDetail struct {
	EdbCode         string                         `description:"指标编码"`
	BaseEdbInfoCode []*EdbInfoCalculateBaseEdbInfo `description:"依赖的基础指标编码"`
}

type EdbInfoCalculateBaseEdbInfo struct {
	FromEdbCode string `description:"指标编码"`
}

type EdbInfoItemResp struct {
	Ret     int    `json:"Ret"`
	Msg     string `json:"Msg"`
	ErrMsg  string `json:"ErrMsg"`
	ErrCode string `json:"ErrCode"`
	Data    struct {
		EdbInfoId        int    `orm:"column(edb_info_id);pk"`
		EdbInfoType      int    `description:"指标类型，0：普通指标，1：预测指标"`
		SourceName       string `description:"来源名称"`
		Source           int    `description:"来源id"`
		EdbCode          string `description:"指标编码"`
		EdbName          string `description:"指标名称"`
		EdbNameEn        string `description:"英文指标名称"`
		EdbNameSource    string `description:"指标名称来源"`
		Frequency        string `description:"频率"`
		Unit             string `description:"单位"`
		UnitEn           string `description:"英文单位"`
		StartDate        string `description:"起始日期"`
		EndDate          string `description:"终止日期"`
		ClassifyId       int    `description:"分类id"`
		SysUserId        int
		SysUserRealName  string
		UniqueCode       string `description:"指标唯一编码"`
		CreateTime       time.Time
		ModifyTime       time.Time
		MinValue         float64 `description:"指标最小值"`
		MaxValue         float64 `description:"指标最大值"`
		CalculateFormula string  `description:"计算公式"`
		EdbType          int     `description:"指标类型:1:基础指标,2:计算指标"`
		IsUpdate         int     `description:"当天是否已更新，1:未更新,2:已更新"`
		Sort             int     `description:"排序字段"`
		LatestDate       string  `description:"数据最新日期"`
		LatestValue      float64 `description:"数据最新值"`
		MoveType         int     `description:"移动方式:1:领先(默认),2:滞后"`
		MoveFrequency    string  `description:"移动频度"`
		NoUpdate         int8    `description:"是否停止更新，0：继续更新；1：停止更新"`
		ServerUrl        string  `description:"服务器地址"`
		ChartImage       string  `description:"图表图片"`
		Calendar         string  `description:"公历/农历" orm:"default(公历);"`
		DataDateType     string  `orm:"column(data_date_type);size(255);null;default(交易日)"`
	} `json:"Data"`
	Success bool `json:"Success"`
}
