package model

import "time"

type TcSfcFile struct {
	TcSfc01   string      `json:"tc_sfc01"` // PBI
	TcSfc02   time.Time   `json:"tc_sfc02"` // 下单日期
	TcSfc04   string      `json:"tc_sfc04"` // 厂商编号
	PmcFile   PmcFile     `gorm:"foreignKey:Pmc01;references:TcSfc04"`
	TcSfc08   string      `json:"tc_sfc08"` // 加工类型
	TcSfdFile []TcSfdFile `gorm:"foreignKey:TcSfd01;references:TcSfc01"`
	TcSfeFile []TcSfeFile `gorm:"foreignKey:TcSfe01;references:TcSfc01"`
}

func (TcSfcFile) TableName() string { return "tc_sfc_file" }

type TcSfdFile struct {
	TcSfd01 string  `json:"tc_sfd01"` // PBI
	TcSfd02 int     `json:"tc_sfd02"` // 回货项次
	TcSfd03 string  `json:"tc_sfd03"` // 料号
	ImaFile ImaFile `gorm:"foreignKey:Ima01;references:TcSfd03"`
	TcSfd05 float64 `json:"tc_sfd05"` // 数量
	TcSfd06 string  `json:"tc_sfd06"` // 批号
	TcSfd13 string  `json:"tc_sfd13"` // 委外工单号
	SfbFile SfbFile `gorm:"foreignKey:Sfb01;references:TcSfd13"`
	//RvbFile   []RvbFile `gorm:"foreignKey:Rvb34;references:TcSfd13"`
	TcSfd14   string    `json:"tc_sfd14"` // 委外采购单号
	RvaFile   []RvaFile `gorm:"foreignKey:Rva02;references:TcSfd14"`
	TcSfdUd02 string    `json:"tc_sfdud02" gorm:"column:TC_SFDUD02"` // 丝印
}

func (TcSfdFile) TableName() string { return "tc_sfd_file" }

type TcSfeFile struct {
	TcSfe01 string  `json:"tc_sfe01"` // PBI
	TcSfe02 int     `json:"tc_sfe02"` // 回货项次
	TcSfe04 string  `json:"tc_sfe04"` // 料号
	ImaFile ImaFile `gorm:"foreignKey:Ima01;references:TcSfe04"`
	TcSfe10 string  `json:"tc_sfe10"` // 晶圆批号
	TcSfe15 string  `json:"tc_sfe15"` // 片号
	TcSfe17 string  `json:"tc_sfe17"` // 是否主芯
}

func (TcSfeFile) TableName() string { return "tc_sfe_file" }

type ImaFile struct {
	Ima01  string `json:"ima01"`  // 料号
	Ima02  string `json:"ima02"`  // 型号
	Ima021 string `json:"ima021"` // 规格
}

func (ImaFile) TableName() string { return "ima_file" }

type PmmFile struct {
	Pmm01   string    `json:"pmm01"` // 采购单号
	Pmm04   time.Time `json:"pmm04"` // 采购日期
	Pmm09   string    `json:"pmm09"` // 供应厂商编号
	PmnFile PmnFile   `gorm:"foreignKey:Pmn01;references:Pmm01"`
	PmcFile PmcFile   `gorm:"foreignKey:Pmc01;references:Pmm09"`
	RvbFile []RvbFile `gorm:"foreignKey:Rvb04;references:Pmm01"`
}

func (PmmFile) TableName() string { return "pmm_file" }

type PmnFile struct {
	Pmn01   string  `json:"pmn01"`
	Pmn04   string  `json:"pmn04"` // 料件编号
	ImaFile ImaFile `gorm:"foreignKey:Ima01;references:Pmn04"`
	Pmn20   float64 `json:"pmn20"`  // 采购量
	Pmn53   float64 `json:"pmn53"`  // 已交量
	Pmn82   string  `json:"pmn82"`  // 采购数量
	Pmn041  string  `json:"pmn041"` // 品名规格
}

func (PmnFile) TableName() string { return "pmn_file" }

type RvaFile struct {
	Rva01   string    `json:"rva01"` // 收货单号
	IddFile []IddFile `gorm:"foreignKey:Idd10;references:Rva01"`
	Rva02   string    `json:"rva02"` // 采购单号
	Rva06   string    `json:"rva06"`
}

func (RvaFile) TableName() string { return "rva_file" }

type RvvFile struct {
	Rvv36   string    `json:"rvv36"` // 采购单号
	Rvv84   string    `json:"rvv84"` // 数量
	RvaFile []RvaFile `gorm:"foreignKey:Rva02;references:Rvv36"`
}

func (RvvFile) TableName() string { return "rvv_file" }

type PmcFile struct {
	Pmc01 string `json:"pmc01"` // 厂商编号
	Pmc03 string `json:"pmc03"` // 厂商名称
}

func (PmcFile) TableName() string { return "pmc_file" }

type RvbFile struct {
	Rvb01 string `json:"rvb01"` // 收货单号
	//IddFile IddFile   `gorm:"foreignKey:Idd10;references:Rvb01"`
	Rvb04 string    `json:"rvb04"` // 采购单号
	Rvb12 time.Time `json:"rvb12"` // 收货日期
	Rvb29 float64   `json:"rvb29"` // 退货量
	Rvb30 float64   `json:"rvb30"` // 入库数
	Rvb34 string    `json:"rvb34"` // PBI
	Rvb38 string    `json:"rvb38"` // 批号
}

func (RvbFile) TableName() string { return "rvb_file" }

type IddFile struct {
	Idd01 string  `json:"idd01"` // 料号
	Idd04 string  `json:"idd04"` // 批号
	Idd06 string  `json:"idd06"` // 良品/不良品
	Idd10 string  `json:"idd10"` // 收货单号
	Idd13 float64 `json:"idd13"` // 数量
}

func (IddFile) TableName() string { return "idd_file" }

type SfbFile struct {
	Sfb01 string `json:"sfb01"`
	Sfb04 string `json:"sfb04"`
}

func (SfbFile) TableName() string { return "sfb_file" }
