package stl

import (
	"time"

	"eta/eta_api/global"
	"eta/eta_api/utils"
)

type CalculateStlConfigMapping struct {
	Id                   int       `orm:"pk" description:"主键"`
	CalculateStlConfigId int       `description:"stl配置id"`
	EdbInfoId            int       `description:"edb信息id"`
	StlEdbType           int       `description:"stl指标类型: 1-Trend, 2-Seasonal, 3-Residual"`
	CreateTime           time.Time `description:"创建时间"`
	ModifyTime           time.Time `description:"修改时间"`
}

func (c *CalculateStlConfigMapping) Insert() (insertId int64, err error) {
	o := global.DbMap[utils.DbNameIndex]
	err = o.Create(c).Error
	if err != nil {
		return
	}
	insertId = int64(c.Id)
	return
}

// GetCalculateStlConfigMappingIdByEdbInfoId 获取配置文件id
func GetCalculateStlConfigMappingIdByEdbInfoId(edbInfoId int) (configId int, err error) {
	sql := `SELECT calculate_stl_config_id FROM calculate_stl_config_mapping WHERE edb_info_id=? LIMIT 1`
	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId).Scan(&configId).Error
	return
}

// GetCalculateStlConfigMappingByConfigId 根据配置文件id获取配置文件映射信息
func GetCalculateStlConfigMappingByConfigId(configId int) (items []*CalculateStlConfigMapping, err error) {
	sql := `SELECT * FROM calculate_stl_config_mapping WHERE calculate_stl_config_id=?`
	err = global.DbMap[utils.DbNameIndex].Raw(sql, configId).Find(&items).Error
	return
}