// Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.

package me

import (
	"LAPP_ACURA_MOM_BACKEND/grmi"
	"xorm.io/core"
)

/******************************************************************************
 *
 * @Struct Name              : Product
 *-----------------------------------------------------------------------------
 *
 * @Description              : Product的实体映射
 *
 * @Author                   : 代码生成器创建
 *
 * @Date                     : 2021-10-19 15:22:21
 *
 ******************************************************************************/
type Product struct {
	PlantNr               int             `xorm:"pk int 'PlantNr'" json:"ME_Product-PlantNr"`
	ProductId             string          `xorm:"pk nvarchar(40) 'ProductId'" json:"ME_Product-ProductId"`
	Descr                 string          `xorm:"nvarchar(40) 'Descr' not null" json:"ME_Product-Descr"`
	ProductFamilyId       string          `xorm:"-" json:"ME_Product-ProductFamilyId"`
	ProjectId             string          `xorm:"pk nvarchar(40) 'ProjectId'" json:"ME_Product-ProjectId"`
	DefaultWorkLineId     string          `xorm:"nvarchar(40) 'DefaultWorkLineId'" json:"ME_Product-DefaultWorkLineId"`
	MultiWorkLineToggle   bool            `xorm:"bit 'MultiWorkLineToggle' not null" json:"ME_Product-MultiWorkLineToggle"`
	Descr1                string          `xorm:"nvarchar(40) 'Descr1' not null" json:"ME_Product-Descr1"`
	Descr2                string          `xorm:"nvarchar(40) 'Descr2' not null" json:"ME_Product-Descr2"`
	PartId                string          `xorm:"nvarchar(40) 'PartId' not null" json:"ME_Product-PartId"`
	CustPartId            string          `xorm:"nvarchar(40) 'CustPartId' not null" json:"ME_Product-CustPartId"`
	IntPartId             string          `xorm:"nvarchar(40) 'IntPartId' not null" json:"ME_Product-IntPartId"`
	PlanType              string          `xorm:"nvarchar(20) 'PlanType' not null" json:"ME_Product-PlanType"`
	PlanMode              string          `xorm:"nvarchar(20) 'PlanMode' not null" json:"ME_Product-PlanMode"`
	ProductType           string          `xorm:"nvarchar(20) 'ProductType' not null" json:"ME_Product-ProductType"`
	ProductType1          string          `xorm:"nvarchar(20) 'ProductType1' not null" json:"ME_Product-ProductType1"`
	ProductType2          string          `xorm:"nvarchar(20) 'ProductType2' not null" json:"ME_Product-ProductType2"`
	ProductSpec           string          `xorm:"nvarchar(40) 'ProductSpec' not null" json:"ME_Product-ProductSpec"`
	ProductSpec1          string          `xorm:"nvarchar(40) 'ProductSpec1' not null" json:"ME_Product-ProductSpec1"`
	ProductSpec2          string          `xorm:"nvarchar(40) 'ProductSpec2' not null" json:"ME_Product-ProductSpec2"`
	AllowPackToggle       bool            `xorm:"bit 'AllowPackToggle' not null" json:"ME_Product-AllowPackToggle"`
	CreateWorkOrderToggle bool            `xorm:"bit 'CreateWorkOrderToggle' not null" json:"ME_Product-CreateWorkOrderToggle"`
	CreatePackOrderToggle bool            `xorm:"bit 'CreatePackOrderToggle' not null" json:"ME_Product-CreatePackOrderToggle"`
	PackSize              int             `xorm:"int 'PackSize' not null" json:"ME_Product-PackSize"`
	PackOrderItemSize     int             `xorm:"int 'PackOrderItemSize' not null" json:"ME_Product-PackOrderItemSize"`
	Jph                   float64         `xorm:"float 'Jph' not null" json:"ME_Product-Jph"`
	PlanPriority          int             `xorm:"int 'PlanPriority' not null" json:"ME_Product-PlanPriority"`
	BatchSize             int             `xorm:"int 'BatchSize' not null" json:"ME_Product-BatchSize"`
	LeadTimeInSecond      int             `xorm:"int 'LeadTimeInSecond' not null" json:"ME_Product-LeadTimeInSecond"`
	PickingFlag           string          `xorm:"nvarchar(40) 'PickingFlag' not null" json:"ME_Product-PickingFlag"`
	MachineCode           string          `xorm:"nvarchar(40) 'MachineCode' not null" json:"ME_Product-MachineCode"`
	ColorValue            string          `xorm:"nvarchar(40) 'ColorValue' not null" json:"ME_Product-ColorValue"`
	PrintTemplateId       string          `xorm:"nvarchar(40) 'PrintTemplateId' not null" json:"ME_Product-PrintTemplateId"`
	CtrlPara1             int             `xorm:"int 'CtrlPara1' not null" json:"ME_Product-CtrlPara1"`
	CtrlPara2             int             `xorm:"int 'CtrlPara2' not null" json:"ME_Product-CtrlPara2"`
	CtrlStr1              string          `xorm:"nvarchar(255) 'CtrlStr1' not null" json:"ME_Product-CtrlStr1"`
	CtrlStr2              string          `xorm:"nvarchar(255) 'CtrlStr2' not null" json:"ME_Product-CtrlStr2"`
	CtrlTime1             grmi.DateTime   `xorm:"datetime 'CtrlTime1' not null" json:"ME_Product-CtrlTime1"`
	CtrlTime2             grmi.DateTime   `xorm:"datetime 'CtrlTime2' not null" json:"ME_Product-CtrlTime2"`
	LastModify            grmi.DateTime   `xorm:"datetime 'LastModify' not null updated" json:"ME_Product-LastModify"`
	LastUser              string          `xorm:"nvarchar(20) 'LastUser' not null" json:"ME_Product-LastUser"`
	CreateTime            grmi.DateTime   `xorm:"datetime 'CreateTime' not null created" json:"ME_Product-CreateTime"`
	//Project               []Project       `xorm:"-" json:"-"`
	ProductFamily         []ProductFamily `xorm:"-" json:"ME_Product-ProductFamily"`
	Count                 int             `xorm:"-" json:"ME_Product-Count"`
}

/******************************************************************************
 *
 * @Function Name            : GetKey
 *-----------------------------------------------------------------------------
 *
 * @Description              : 获取实体的主键
 *
 * @Return Value             : 实体的主键
 *
 * @Author                   : 代码生成器创建
 *
 * @Date                     : 2021-10-19 15:22:21
 *
 ******************************************************************************/
func (self *Product) GetKey() core.PK {
	return core.PK{self.PlantNr, self.ProductId, self.ProjectId}
}
