package model

import (
	"gorm.io/gorm"
	"time"
)

type FileText struct {
	ID          uint           `gorm:"primaryKey" json:"id"`
	Name        string         `json:"name" gorm:"comment:文件名;index"`
	Path        string         `json:"path" gorm:"comment:文件路径;index"`
	Size        string         `json:"size" gorm:"comment:文件大小"`
	ModTime     int64          `json:"modtime" gorm:"comment:文件修改时间"`
	IsCsv       bool           `json:"isCsv" gorm:"comment:是否为csv文件"`
	Sha1        string         `json:"sha1" gorm:"comment:文件sha1值"`
	Factory     string         `json:"factory" gorm:"comment:厂商"`
	Processed   bool           `json:"processed" gorm:"comment:是否已处理"`
	ProductName string         `json:"product_name"`
	Lot         string         `json:"lot" gorm:"comment:批次号"`
	SubBatch    string         `json:"sub_batch" gorm:"子批次"`
	CreatedAt   time.Time      `json:"created_at"`
	UpdatedAt   time.Time      `json:"-"`
	DeletedAt   gorm.DeletedAt `gorm:"index" json:"-"`
}

func (FileText) TableName() string {
	return "file_text"
}

type FileCompress struct {
	ID           uint           `gorm:"primaryKey" json:"id"`
	Name         string         `json:"name" gorm:"comment:文件名;index"`
	Path         string         `json:"path" gorm:"comment:文件路径;index"`
	Size         string         `json:"size" gorm:"comment:文件大小"`
	ModTime      int64          `json:"modtime" gorm:"comment:文件修改时间"`
	NewName      string         `json:"newName" gorm:"comment:重命名后的文件名"`
	NewPath      string         `json:"newPath" gorm:"comment:重命名后的文件路径"`
	Decompressed bool           `json:"decompressed" gorm:"comment:是否已解压"`
	Unzip        string         `json:"unzip" gorm:"comment:解压后的文件路径"`
	Sha1         string         `json:"sha1" gorm:"comment:文件sha1值"`
	Factory      string         `json:"factory" gorm:"comment:厂商"`
	ProductName  string         `json:"product_name"`
	Lot          string         `json:"lot" gorm:"comment:批次号"`
	CreatedAt    time.Time      `json:"created_at"`
	UpdatedAt    time.Time      `json:"-"`
	DeletedAt    gorm.DeletedAt `gorm:"index" json:"-"`
}

func (FileCompress) TableName() string {
	return "file_compress"
}

type FileHandled struct {
	ID               int            `json:"id" gorm:"primary_key"`
	Name             string         `json:"name"`
	Path             string         `json:"path"`
	Size             string         `json:"size"`
	Factory          string         `json:"factory"` // 厂商
	PBI              string         `json:"pbi" comment:"PBI"`
	Product          string         `json:"product"`            // 产品型号
	Step             string         `json:"step"`               // 测试工序
	Lot              string         `json:"lot"`                // 批号
	SubBatch         string         `json:"sub_batch"`          // 子批
	TestMachineModel string         `json:"test_machine_model"` // 测试机台型号
	TestMachine      string         `json:"test_machine"`       // 测试机台
	TestProgram      string         `json:"test_program"`       // 测试程序
	WaferID          string         `json:"wafer_id"`
	BeginningTime    string         `json:"beginning_time"` // 开始时间
	EndingTime       string         `json:"ending_time"`    // 结束时间
	SbinHbin         string         `json:"sbin_hbin"`      // Sbin/Hbin
	TitleInfo        string         `json:"title_info"`     // 参数信息
	CreatedAt        time.Time      `json:"created_at"`
	UpdatedAt        time.Time      `json:"-"`
	DeletedAt        gorm.DeletedAt `json:"-" gorm:"index"`
}

type DataInfo struct {
	Unit   string
	LimitL string
	LimitU string
}

type BinInfo struct {
	//Number string
	Name string
	HBin string
}

type CQ774P struct {
	ID        int            `json:"id" gorm:"primary_key"`
	Data      string         `json:"data" gorm:"type:text"`
	CreatedAt time.Time      `json:"created_at"`
	UpdatedAt time.Time      `json:"-"`
	DeletedAt gorm.DeletedAt `json:"-" gorm:"index"`
}
