package Device

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

// 设备记录数据 操作历史记录（只存放留存下来的数据，最近记录直接写到 记录数据中）
type DeviceDataOld struct {
	Id int `orm:"column(ID);size(11);auto;pk"`

	T_sn string `orm:"index;size(256);"` // 主键 设备序列号
	T_id int    `orm:"index;size(12);"`  // 主键 传感器编号

	T_t    float32   `orm:"size(20);digits(6);decimals(1)"` // 温度
	T_rh   float32   `orm:"size(20);digits(6);decimals(1)"` // 湿度
	T_Site string    `orm:"size(100);"`                     // GPS
	T_time time.Time `orm:"index;type(timestamp);"`         // 主键 采集时间

	T_operation int `orm:"size(12);"` // 操作类型  1：插入   2：替换   3：删除   4：忽略

	T_uuid     string    `orm:"size(256);"`                                       // 操作人  Admin->T_uuid , 如果为空字符串 则是设备本身上传的，标记为(设备)
	CreateTime time.Time `orm:"column(create_time);type(timestamp);auto_now_add"` //auto_now 每次 model 保存时都会对时间自动更新
}

type DeviceDataOld_R struct {
	T_t         float32   // 温度
	T_rh        float32   // 湿度
	T_Site      string    // GPS
	T_time      time.Time // 采集时间
	T_operation int       // 操作类型  1：插入   2：替换   3：删除
	T_uuid      string    // 操作人  Admin->T_uuid , 如果为空字符串 则是设备本身上传的
	CreateTime  time.Time //auto_now 每次 model 保存时都会对时间自动更新
}

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

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

func DeviceDataOldToDeviceDataOld_R(r DeviceDataOld) (t DeviceDataOld_R) {
	t.T_t = r.T_t
	t.T_rh = r.T_rh
	t.T_Site = r.T_Site
	t.T_time = r.T_time
	t.T_operation = r.T_operation
	t.T_uuid = r.T_uuid
	t.CreateTime = r.CreateTime

	return
}

// ---------------- 特殊方法 -------------------

// 添加
func Add_DeviceDataOld(m DeviceDataOld) (id int64, err error) {
	o := orm.NewOrm()
	id, err = o.Insert(&m)
	if err != nil {
		logs.Println("Add_DeviceDataOld", err)
	}
	return id, err
}
