package Product

import (
	"Cold_Data/logs"
	_ "github.com/astaxie/beego/cache/redis"
	"github.com/beego/beego/v2/adapter/orm"
	_ "github.com/go-sql-driver/mysql"
	"time"
)

// 产品类型
type ProductType struct {
	Id      int    `orm:"column(ID);size(11);auto;pk"`
	T_name  string `orm:"size(256);"` // 产品统称 + 类型
	T_model string `orm:"size(256);"` // 产品型号
}

// 产品统称	产品型号	类型
// 库房采集器(高配版)	KF100N	RS485(NB-Iot)
// 库房采集器(标准版)	KF100B	RS485
// 库房采集器(黑白版)	KF200L	RS485
// 冰箱采集器(数码管版)	BX200GSE	4G-Cat.1
// 冰箱采集器(黑白版)	BX200GBL	4G-Cat.1
// 保温箱采集器V1	BW100	4G-Cat.1
// 运输采集器V1	YD100	4G-Cat.1/GPS
// 保温箱采集器V2	BW200	4G-Cat.1
// 运输采集器V2	YD200	4G-Cat.1/GPS
// 新管理主机	MD100	TCP/4G/WiFi
// 小管理主机	MD200G	4G-Cat.1/RS485

var ProductType_list map[string]string // 泛型

func (t *ProductType) TableName() string {
	return "product_type" // 数据库名称   // ************** 替换 FormulaList **************
}

//var redisCache_WarningType cache.Cache

func init() {
	//注册模型
	orm.RegisterModel(new(ProductType))

	ProductType_list = make(map[string]string)

	go Read_ProductType_All()
}

// 获取全部
func Read_ProductType_All() {
	time.Sleep(time.Second)

	logs.Println("=========== 初始化产品类型 =========")

	o := orm.NewOrm()
	for true {
		var r []ProductType
		qs := o.QueryTable(new(ProductType))
		qs.All(&r)

		for _, v := range r {
			ProductType_list[v.T_model] = v.T_name
		}
		time.Sleep(1 * time.Hour)
	}

}
func Read_ProductType_Get(T_model string) string {
	// 有先加入 给全部人发消息
	v, ok := ProductType_list[T_model] /*如果确定是真实的,则存在,否则不存在 */
	if ok {
		return v
	} else {
		logs.Println("Read_ProductType_Get:", T_model, "未知类型")
		return "未知类型"
	}
}
