package future_good_edb_info

import (
	"time"
)

// FutureGoodEdbInfo 期货指标
type FutureGoodEdbInfo struct {
	FutureGoodEdbInfoID int       `gorm:"primaryKey;column:future_good_edb_info_id;type:bigint(9) unsigned;not null" json:"-"`                // 期货指标id
	FutureGoodEdbCode   string    `gorm:"column:future_good_edb_code;type:varchar(64);default:null;default:''" json:"futureGoodEdbCode"`      // 期货指标code
	FutureGoodEdbName   string    `gorm:"column:future_good_edb_name;type:varchar(64);default:null;default:''" json:"futureGoodEdbName"`      // 期货指标名称
	FutureGoodEdbNameEn string    `gorm:"column:future_good_edb_name_en;type:varchar(64);default:null;default:''" json:"futureGoodEdbNameEn"` // 期货指标名称(英文)
	ParentID            uint64    `gorm:"column:parent_id;type:bigint(9) unsigned;default:null;default:0" json:"parentId"`                    // 上级期货id
	RegionType          string    `gorm:"column:region_type;type:varchar(32);default:null;default:国内" json:"regionType"`                      // 交易所来源，海外还是国内
	Exchange            string    `gorm:"column:exchange;type:varchar(32);default:null;default:''" json:"exchange"`                           // 所属交易所
	FutureGoodEdbType   int       `gorm:"column:future_good_edb_type;type:tinyint(4);default:null;default:1" json:"futureGoodEdbType"`        // 指标类型,1:年月是固定的合约；2：只有M+N期的合约，未固定年月
	DateSourceID        int       `gorm:"column:date_source_id;type:bigint(9);default:null;default:0" json:"dateSourceId"`                    // 画图时，日期来源的指标id
	Year                int       `gorm:"column:year;type:int(9);default:null;default:0" json:"year"`                                         // 所属年份
	Month               int       `gorm:"column:month;type:int(9) unsigned;default:null;default:0" json:"month"`                              // 所属月份
	StartDate           time.Time `gorm:"column:start_date;type:date;default:null" json:"startDate"`                                          // 数据开始日期
	EndDate             time.Time `gorm:"column:end_date;type:date;default:null" json:"endDate"`                                              // 数据结束日期
	MinValue            float64   `gorm:"column:min_value;type:double;default:null;default:0" json:"minValue"`                                // 最小值
	MaxValue            float64   `gorm:"column:max_value;type:double;default:null;default:0" json:"maxValue"`                                // 最大值
	LatestValue         float64   `gorm:"column:latest_value;type:double;default:null;default:0" json:"latestValue"`                          // 数据最新的值
	LatestDate          time.Time `gorm:"column:latest_date;type:date;default:null" json:"latestDate"`                                        // 数据最新的日期
	ServerURL           string    `gorm:"column:server_url;type:varchar(255);default:null;default:''" json:"serverUrl"`                       // 服务器地址
	ModifyTime          time.Time `gorm:"column:modify_time;type:datetime;default:null" json:"modifyTime"`                                    // 最近修改时间
	CreateTime          time.Time `gorm:"column:create_time;type:timestamp;default:null" json:"createTime"`                                   // 创建时间
}

// TableName get sql table name.获取数据库表名
func (m *FutureGoodEdbInfo) TableName() string {
	return "future_good_edb_info"
}

// FutureGoodEdbInfoColumns get sql column name.获取数据库列名
var FutureGoodEdbInfoColumns = struct {
	FutureGoodEdbInfoID string
	FutureGoodEdbCode   string
	FutureGoodEdbName   string
	FutureGoodEdbNameEn string
	ParentID            string
	RegionType          string
	Exchange            string
	FutureGoodEdbType   string
	DateSourceID        string
	Year                string
	Month               string
	StartDate           string
	EndDate             string
	MinValue            string
	MaxValue            string
	LatestValue         string
	LatestDate          string
	ServerURL           string
	ModifyTime          string
	CreateTime          string
}{
	FutureGoodEdbInfoID: "future_good_edb_info_id",
	FutureGoodEdbCode:   "future_good_edb_code",
	FutureGoodEdbName:   "future_good_edb_name",
	FutureGoodEdbNameEn: "future_good_edb_name_en",
	ParentID:            "parent_id",
	RegionType:          "region_type",
	Exchange:            "exchange",
	FutureGoodEdbType:   "future_good_edb_type",
	DateSourceID:        "date_source_id",
	Year:                "year",
	Month:               "month",
	StartDate:           "start_date",
	EndDate:             "end_date",
	MinValue:            "min_value",
	MaxValue:            "max_value",
	LatestValue:         "latest_value",
	LatestDate:          "latest_date",
	ServerURL:           "server_url",
	ModifyTime:          "modify_time",
	CreateTime:          "create_time",
}
