package models

import (
	"github.com/beego/beego/v2/client/orm"
	_ "github.com/go-sql-driver/mysql"
	"hongze/hongze_edb_lib/models/future_good"
	"hongze/hongze_edb_lib/models/supply_analysis"
	"hongze/hongze_edb_lib/utils"
	"time"
)

func init() {
	_ = orm.RegisterDataBase("default", "mysql", utils.MYSQL_URL)
	orm.SetMaxIdleConns("default", 50)
	orm.SetMaxOpenConns("default", 100)

	db, _ := orm.GetDB("default")
	db.SetConnMaxLifetime(10 * time.Minute)

	_ = orm.RegisterDataBase("edb", "mysql", utils.MYSQL_URL_EDB)
	orm.SetMaxIdleConns("edb", 50)
	orm.SetMaxOpenConns("edb", 100)

	edb_db, _ := orm.GetDB("edb")
	edb_db.SetConnMaxLifetime(10 * time.Minute)

	_ = orm.RegisterDataBase("gl", "mysql", utils.MYSQL_URL_GL)
	orm.SetMaxIdleConns("gl", 50)
	orm.SetMaxOpenConns("gl", 100)

	gl, _ := orm.GetDB("gl")
	gl.SetConnMaxLifetime(10 * time.Minute)

	orm.Debug = true
	orm.DebugLog = orm.NewLog(utils.Binlog)

	//注册对象
	orm.RegisterModel(
		new(EdbDataCalculateZjpj),
		new(EdbDataCalculateLjztbpj),
		new(EdbInfo),
		new(EdbInfoCalculateMapping),
		new(EdbPythonCode),
		new(EdbDataPython),
		new(ChartEdbMapping),
		new(PredictEdbConf),
		new(EdbClassify),
		new(PredictEdbConfCalculateMapping),
		new(PredictEdbRuleData),
		new(EdbDataCalculateNhcc),
		new(EdbDataPredictCalculateLjztbpj),
		new(EdbDataPredictCalculateNhcc),
		new(EdbDataPredictCalculateZjpj),
	)

	// 注册期货数据 数据表
	initFutureGood()

	// 供应分析 数据表
	initSupplyAnalysis()
}

// initFutureGood 注册期货数据 数据表
func initFutureGood() {
	//注册对象
	orm.RegisterModel(
		new(future_good.FutureGoodEdbInfo), //期货指标表
		new(future_good.FutureGoodEdbData), //期货指标数据表
	)
}

// initSupplyAnalysis 供应分析
func initSupplyAnalysis() {
	orm.RegisterModel(
		new(supply_analysis.Variety),
		new(supply_analysis.VarietyAdminPermission),
		new(supply_analysis.VarietyEdbInfo),
		new(supply_analysis.VarietyPlant),
		new(supply_analysis.BaseFromStockPlantData),
	)
}
