package data_manage

import (
	"fmt"
	"github.com/beego/beego/v2/client/orm"
	"time"
)

type ShData struct {
	InputValue string `orm:"column(DATA_VALUE)" description:"日期"`
	DataTime   string `orm:"column(DATA_DATE)" description:"值"`
}

type BaseFromShDataSimple struct {
	Id        int `orm:"column(base_from_trade_shanghai_index_id);pk"`
	DealCode  string
	BuyCode   string
	SoldCode  string
	DataTime  string
	DealValue string
	BuyValue  string
	SoldValue string
}

type BaseInfoFromSh struct {
	DealName string
	BuyName  string
	SoldName string
}

type BaseFromTradeShIndex struct {
	BaseFromTradeShIndexId int `orm:"column(base_from_trade_shanghai_index_id);pk"`
	Rank                   int
	DealShortName          string
	DealName               string
	DealCode               string
	DealValue              string
	DealChange             int
	BuyShortName           string
	BuyName                string
	BuyCode                string
	BuyValue               string
	BuyChange              int
	SoldShortName          string
	SoldName               string
	SoldCode               string
	SoldValue              string
	SoldChange             int
	Frequency              string
	ClassifyName           string
	ClassifyType           string
	CreateTime             time.Time
	ModifyTime             time.Time
	DataTime               string
}

func GetEdbDataShMaxOrMinDate(edbCode string) (minDate, maxDate string, err error) {
	o := orm.NewOrmUsingDB("data")
	sql := ` SELECT MIN(data_time) AS minDate,MAX(data_time) AS maxDate FROM edb_data_sh WHERE edb_code=? `
	err = o.Raw(sql, edbCode).QueryRow(&minDate, &maxDate)
	return
}

// GetBaseInfoFromShByIndexCode 获取指标信息
func GetBaseInfoFromShByIndexCode(indexCode, suffix string) (list []*BaseInfoFromSh, err error) {
	o := orm.NewOrmUsingDB("data")
	sql := `SELECT * FROM base_from_trade_shanghai_index WHERE %s_code=? `
	sql = fmt.Sprintf(sql, suffix)
	_, err = o.Raw(sql, indexCode).QueryRows(&list)
	return
}