package chart_info

import (
	"time"
)

// ChartInfo 图表信息表
type ChartInfo struct {
	ChartInfoId       int       `gorm:"primaryKey;column:chart_info_id;type:int(11);not null" json:"chartInfoId"`
	ChartName         string    `gorm:"uniqueIndex:idx_chart_name;column:chart_name;type:varchar(500);default:''" json:"chartName"`        // 图表名称
	UniqueCode        string    `gorm:"unique;column:unique_code;type:varchar(50);default:''" json:"uniqueCode"`                           // 唯一编码
	ChartClassifyId   int       `gorm:"uniqueIndex:idx_chart_name;column:chart_classify_id;type:int(11);default:0" json:"chartClassifyId"` // 分类id
	SysUserId         int       `gorm:"column:sys_user_id;type:int(11);default:0" json:"sysUserId"`                                        // 创建人id
	SysUserRealName   string    `gorm:"column:sys_user_real_name;type:varchar(100);default:''" json:"sysUserRealName"`                     // 创建人姓名
	CreateTime        time.Time `gorm:"column:create_time;type:datetime" json:"createTime"`
	ModifyTime        time.Time `gorm:"column:modify_time;type:datetime" json:"modifyTime"`
	DateType          int       `gorm:"column:date_type;type:int(11);default:0" json:"dateType"`                     // 日期类型:1:00年至今,2:10年至今,3:15年至今，4：年初至今，5:自定义时间,6:起始日期至今
	StartDate         string    `gorm:"column:start_date;type:varchar(30);default:''" json:"startDate"`              // 自定义开始日期
	EndDate           string    `gorm:"column:end_date;type:varchar(30);default:''" json:"endDate"`                  // 自定义结束日期
	IsSetName         int       `gorm:"column:is_set_name;type:tinyint(4);default:0" json:"isSetName"`               // 0:未修改，1:已修改
	EdbInfoIDs        string    `gorm:"column:edb_info_ids;type:varchar(100);default:''" json:"edbInfoIds"`          // 指标id
	ChartType         int       `gorm:"column:chart_type;type:tinyint(4);default:1" json:"chartType"`                // 生成样式:1:曲线图,2:季节性图
	Calendar          string    `gorm:"column:calendar;type:varchar(10);default:''" json:"calendar"`                 // 公历/农历
	SeasonStartDate   string    `gorm:"column:season_start_date;type:varchar(30);default:''" json:"seasonStartDate"` // 季节开始日期
	SeasonEndDate     string    `gorm:"column:season_end_date;type:varchar(30);default:''" json:"seasonEndDate"`     // 季节结束日期
	ChartImage        string    `gorm:"column:chart_image;type:varchar(255);default:''" json:"chartImage"`           // 图表图片
	Sort              int       `gorm:"column:sort;type:int(9);default:0" json:"sort"`                               // 排序字段，数字越小越排前面
	EdbEndDate        time.Time `gorm:"column:edb_end_date;type:date" json:"edbEndDate"`                             // 指标最后更新日期
	LeftMin           string    `gorm:"column:left_min;type:varchar(30);default:''" json:"leftMin"`                  // 图表左侧最小值
	LeftMax           string    `gorm:"column:left_max;type:varchar(30);default:''" json:"leftMax"`                  // 图表左侧最大值
	RightMin          string    `gorm:"column:right_min;type:varchar(30);default:''" json:"rightMin"`                // 图表右侧最小值
	RightMax          string    `gorm:"column:right_max;type:varchar(30);default:''" json:"rightMax"`                // 图表右侧最大值
	Right2Min         string    `gorm:"column:right2_min;type:varchar(30);default:''" json:"right2Min"`              // 图表右侧2最小值
	Right2Max         string    `gorm:"column:right2_max;type:varchar(30);default:''" json:"right2Max"`              // 图表右侧2最大值
	MinMaxSave        int       `gorm:"column:min_max_save;type:int(11);default:0" json:"minMaxSave"`                // 是否手动保存过上下限：0-否；1-是
	Source            int       `gorm:"column:source;type:int(11);default:0" json:"source"`                          //"1：ETA图库；2：商品价格曲线"`
	ExtraConfig       string    `gorm:"column:extra_config;type:text;default:null" json:"extraConfig"`               // 图表额外配置,json数据
	ChartNameEn       string    `gorm:"column:chart_name_en" json:"chartNameEn"`                                     // 英文图表名称
	Disabled          uint8     `gorm:"column:disabled" json:"disabled"`                                             // 是否禁用，0：启用，1：禁用，默认：0
	BarConfig         string    `gorm:"column:bar_config" json:"barConfig"`                                          // 柱方图的配置，json数据
	SeasonExtraConfig string    `gorm:"column:season_extra_config" json:"seasonExtraConfig"`                         // 季节性图表额外配置,json数据
	StartYear         int       `gorm:"column:start_year" json:"startYear"`                                          // 当选择的日期类型为最近N年类型时，即date_type=20, 用start_year表示N
	ChartThemeID      int       `gorm:"column:chart_theme_id" json:"chartThemeId"`                                   // 主题id
	SourcesFrom       string    `gorm:"column:sources_from" json:"sourcesFrom"`                                      // 图表来源
	Instructions      string    `gorm:"column:instructions" json:"instructions"`                                     // 图表说明
	MarkersLines      string    `gorm:"column:markers_lines" json:"markersLines"`                                    // 标识线
	MarkersAreas      string    `gorm:"column:markers_areas" json:"markersAreas"`                                    // 标识区
}

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

// ChartInfoColumns get sql column name.获取数据库列名
var ChartInfoColumns = struct {
	ChartInfoID       string
	ChartName         string
	UniqueCode        string
	ChartClassifyID   string
	SysUserID         string
	SysUserRealName   string
	CreateTime        string
	ModifyTime        string
	DateType          string
	StartDate         string
	EndDate           string
	IsSetName         string
	EdbInfoIDs        string
	ChartType         string
	Calendar          string
	SeasonStartDate   string
	SeasonEndDate     string
	ChartImage        string
	Sort              string
	EdbEndDate        string
	LeftMin           string
	LeftMax           string
	RightMin          string
	RightMax          string
	Right2Min         string
	Right2Max         string
	MinMaxSave        string
	ChartNameEn       string
	Disabled          string
	BarConfig         string
	Source            string
	ExtraConfig       string
	SeasonExtraConfig string
	StartYear         string
	ChartThemeID      string
	SourcesFrom       string
	Instructions      string
	MarkersLines      string
	MarkersAreas      string
}{
	ChartInfoID:       "chart_info_id",
	ChartName:         "chart_name",
	UniqueCode:        "unique_code",
	ChartClassifyID:   "chart_classify_id",
	SysUserID:         "sys_user_id",
	SysUserRealName:   "sys_user_real_name",
	CreateTime:        "create_time",
	ModifyTime:        "modify_time",
	DateType:          "date_type",
	StartDate:         "start_date",
	EndDate:           "end_date",
	IsSetName:         "is_set_name",
	EdbInfoIDs:        "edb_info_ids",
	ChartType:         "chart_type",
	Calendar:          "calendar",
	SeasonStartDate:   "season_start_date",
	SeasonEndDate:     "season_end_date",
	ChartImage:        "chart_image",
	Sort:              "sort",
	EdbEndDate:        "edb_end_date",
	LeftMin:           "left_min",
	LeftMax:           "left_max",
	RightMin:          "right_min",
	RightMax:          "right_max",
	Right2Min:         "right2_min",
	Right2Max:         "right2_max",
	MinMaxSave:        "min_max_save",
	ChartNameEn:       "chart_name_en",
	Disabled:          "disabled",
	BarConfig:         "bar_config",
	Source:            "source",
	ExtraConfig:       "extra_config",
	SeasonExtraConfig: "season_extra_config",
	StartYear:         "start_year",
	ChartThemeID:      "chart_theme_id",
	SourcesFrom:       "sources_from",
	Instructions:      "instructions",
	MarkersLines:      "markers_lines",
	MarkersAreas:      "markers_areas",
}
