package types

import (
	"time"

	"gorm.io/gorm"
)

type OrdenFabricacion struct {
	Inst      string
	DateTime  string
	POrderNo  int `gorm:"primaryKey"`
	SchedulNo int
	SeqNumber int
	PptimeWfc string
	PptimeMsc string
	SteelGrad string
	ITemp     string
	IHeight   string
	IWidth    string
	ISection  string
	HeatingSt int
	FTarTemp  string
	FSection  string
	FSectType string
	TotWeight string
	TBeamBla  int
	TCustOrd  int
	TestLen   int
	PostFlag  string
	ModuloX   string
	OvWTolU   string
	OvWTolL   string
	OvHTolU   string
	OvHTolL   string
	WeTTolU   string
	WeTTolL   string
	WeHTolU   string
	WeHTolL   string
	FlWDsU    string
	FlWDsL    string
	FlWOsU    string
	FlWOsL    string
	WeMetTU   string
	WeMetTL   string
	WeCenTol  string
	WeSquTol  string
	FlParTol  string
	BdRollID  string
	UrRollID  string
	EdRollID  string
	UfRollID  string
	SmRollID  string
	Grupo6    string
	StName    string
	StWeighM  string
	StLen1    string
	StLen2    string
	StLen3    string
	StLen4    string
	StLen5    string
	StLen6    string
	StLen7    string
	StLen8    string
	StLen9    string
	StLen10   string
	StLen11   string
	StLen12   string
	Marfab    int
	Sortb     string
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt gorm.DeletedAt `gorm:"index"`
}

func (o *OrdenFabricacion) BeforeCreate(tx *gorm.DB) (err error) {
	o.CreatedAt = time.Now()
	o.UpdatedAt = time.Now()
	return
}

func (o *OrdenFabricacion) BeforeUpdate(tx *gorm.DB) (err error) {
	o.UpdatedAt = time.Now()
	return
}

type T10001 struct {
	Inst      string `json:"INST"`
	DateTime  string `json:"DATE_TIME"`
	POrderNo  int    `json:"P_ORDER_NO"`
	SchedulNo int    `json:"SCHEDUL_NO"`
	SeqNumber int    `json:"SEQ_NUMBER"`
	PptimeWfc string `json:"PPTIME_WFC"`
	PptimeMsc string `json:"PPTIME_MSC"`
	SteelGrad string `json:"STEEL_GRAD"`
	ITemp     string `json:"I_TEMP"`
	IHeight   string `json:"I_HEIGHT"`
	IWidth    string `json:"I_WIDTH"`
	ISection  string `json:"I_SECTION"`
	HeatingSt int    `json:"HEATING_ST"`
	FTarTemp  string `json:"F_TAR_TEMP"`
	FSection  string `json:"F_SECTION"`
	FSectType string `json:"F_SECT_TYPE"`
	TotWeight string `json:"TOT_WEIGHT"`
	TBeamBla  int    `json:"T_BEAM_BLA"`
	TCustOrd  int    `json:"T_CUST_ORD"`
	TestLen   int    `json:"TEST_LEN"`
	PostFlag  string `json:"POST_FLAG"`
	ModuloX   string `json:"MODULO_X"`
	OvWTolU   string `json:"OV_W_TOL_U"`
	OvWTolL   string `json:"OV_W_TOL_L"`
	OvHTolU   string `json:"OV_H_TOL_U"`
	OvHTolL   string `json:"OV_H_TOL_L"`
	WeTTolU   string `json:"WE_T_TOL_U"`
	WeTTolL   string `json:"WE_T_TOL_L"`
	WeHTolU   string `json:"WE_H_TOL_U"`
	WeHTolL   string `json:"WE_H_TOL_L"`
	FlWDsU    string `json:"FL_W_DS_U"`
	FlWDsL    string `json:"FL_W_DS_L"`
	FlWOsU    string `json:"FL_W_OS_U"`
	FlWOsL    string `json:"FL_W_OS_L"`
	WeMetTU   string `json:"WE_MET_T_U"`
	WeMetTL   string `json:"WE_MET_T_L"`
	WeCenTol  string `json:"WE_CEN_TOL"`
	WeSquTol  string `json:"WE_SQU_TOL"`
	FlParTol  string `json:"FL_PAR_TOL"`
	BdRollID  string `json:"BD_ROLL_ID"`
	UrRollID  string `json:"UR_ROLL_ID"`
	EdRollID  string `json:"ED_ROLL_ID"`
	UfRollID  string `json:"UF_ROLL_ID"`
	SmRollID  string `json:"SM_ROLL_ID"`
	Grupo6    string `json:"GRUPO6"`
	StName    string `json:"ST_NAME"`
	StWeighM  string `json:"ST_WEIGH_M"`
	StLen1    string `json:"ST_LEN_1"`
	StLen2    string `json:"ST_LEN_2"`
	StLen3    string `json:"ST_LEN_3"`
	StLen4    string `json:"ST_LEN_4"`
	StLen5    string `json:"ST_LEN_5"`
	StLen6    string `json:"ST_LEN_6"`
	StLen7    string `json:"ST_LEN_7"`
	StLen8    string `json:"ST_LEN_8"`
	StLen9    string `json:"ST_LEN_9"`
	StLen10   string `json:"ST_LEN_10"`
	StLen11   string `json:"ST_LEN_11"`
	StLen12   string `json:"ST_LEN_12"`
	Marfab    int    `json:"MARFAB"`
	Sortb     string `json:"SORTB"`
}

type GetProductionOrderReq struct {
	Sender    string
	PoNo      int
	TimeStamp string
}

type GetProductionOrderRes struct {
	OrdenFabricacion *OrdenFabricacion
	TimeStamp        string
}

type GetProductionOrdersReq struct {
	Sender    string
	Limit     int
	TimeStamp string
}

type GetProductionOrdersRes struct {
	OrdenFabricacion []OrdenFabricacion
	TimeStamp        string
}
