// Package model -----------------------------
// @file      : container.go
// @author    : JJXu
// @contact   : wavingbear@163.com
// @time      : 2024/7/1 上午11:47
// -------------------------------------------
package model

import (
	"github.com/fonchain/fonchain-container/pkg/util"
	"gorm.io/gorm"
)

// Container 货柜
type Container struct {
	Model
	ContainerUid string `gorm:"column:container_uid;comment:货柜编号"`
	Name         string `gorm:"column:name;comment:货柜名称"`
	ColumnLen    int    `gorm:"column:column_len;comment:货柜列数"`
	RowLen       int    `gorm:"column:row_len;comment:货柜行数"`
}

func (c Container) TableName() string {
	return "container"
}
func (c *Container) BeforeCreate(tx *gorm.DB) (err error) {
	if c.ContainerUid == "" {
		c.ContainerUid, err = util.GetUid()
	}
	return nil
}

//	func (d *Device) BeforeCreate(tx *gorm.DB) error {
//		// 获取当前日期,格式化为yyMMdd
//		currentDate := time.Now().Format(stime.Format_NoSpacer_YMD)
//
//		// 生成一个4位的随机序列号,范围0000-9999
//		randomSeq := fmt.Sprintf("%04d", rand.Intn(10000))
//
//		// 构造SN号主体部分
//		sn := currentDate + productCode + randomSeq
//
//		// 计算校验位,这里简单使用所有字符ASCII值之和对11取模
//		var checkSum int
//		for _, char := range sn {
//			checkSum += int(char)
//		}
//		checkSum %= 11
//		checkSumStr := fmt.Sprintf("%01d", checkSum)
//
//		// 返回完整的SN号,包括校验位
//		d.SN = sn + checkSumStr
//		return nil
//	}