package models

type Manufacturer struct {
	ID               int64  `gorm:"column:id" json:"id"`
	ManufacturerName string `gorm:"column:manufacturer_name" json:"manufacturer_name"`
	Contact          string `gorm:"column:contact" json:"contact"`
	ContactPhone     string `gorm:"column:contact_phone" json:"contact_phone"`
	PlatformNumber   string `gorm:"column:platform_number" json:"platform_number"`
	Email            string `gorm:"column:email" json:"email"`
	ContactAddress   string `gorm:"column:contact_address" json:"contact_address"`
	Remark           string `gorm:"column:remark" json:"remark"`
	Creater          int64  `gorm:"column:creater" json:"creater"`
	Modifier         int64  `gorm:"column:modifier" json:"modifier"`
	Ctime            int64  `gorm:"column:ctime" json:"ctime"`
	Mtime            int64  `gorm:"column:mtime" json:"mtime"`
	OrgId            int64  `gorm:"column:org_id" json:"org_id"`
	Status           int64  `gorm:"column:status" json:"status"`
	ManufacturerCode string `gorm:"column:manufacturer_code" json:"manufacturer_code"`
	PinYin           string `gorm:"column:pinyin" json:"pinyin"`
	WuBi             string `gorm:"column:wubi" json:"wubi"`
}

func (Manufacturer) TableName() string {
	return "xt_manufacturer"
}

type Dealer struct {
	ID             int64  `gorm:"column:id" json:"id"`
	DealerName     string `gorm:"column:dealer_name" json:"dealer_name"`
	Contact        string `gorm:"column:contact" json:"contact"`
	ContactPhone   string `gorm:"column:contact_phone" json:"contact_phone"`
	PlatformNumber string `gorm:"column:platform_number" json:"platform_number"`
	Email          string `gorm:"column:email" json:"email"`
	ContactAddress string `gorm:"column:contact_address" json:"contact_address"`
	Remark         string `gorm:"column:remark" json:"remark"`
	Creater        int64  `gorm:"column:creater" json:"creater"`
	Modifier       int64  `gorm:"column:modifier" json:"modifier"`
	Ctime          int64  `gorm:"column:ctime" json:"ctime"`
	Mtime          int64  `gorm:"column:mtime" json:"mtime"`
	OrgId          int64  `gorm:"column:org_id" json:"org_id"`
	Status         int64  `gorm:"column:status" json:"status"`
	DealerCode     string `gorm:"column:dealer_code" json:"dealer_code"`
	PinYin         string `gorm:"column:pinyin" json:"pinyin"`
	WuBi           string `gorm:"column:wubi" json:"wubi"`
}

func (Dealer) TableName() string {
	return "xt_dealer"
}

type Warehousing struct {
	ID               int64        `gorm:"column:id" json:"id"`
	WarehousingOrder string       `gorm:"column:warehousing_order" json:"warehousing_order"`
	OperationTime    int64        `gorm:"column:operation_time" json:"operation_time"`
	OrgId            int64        `gorm:"column:org_id" json:"org_id"`
	Creater          int64        `gorm:"column:creater" json:"creater"`
	Ctime            int64        `gorm:"column:ctime" json:"ctime"`
	Modifier         int64        `gorm:"column:modifier" json:"modifier"`
	Mtime            int64        `gorm:"column:mtime" json:"mtime"`
	Status           int64        `gorm:"column:status" json:"status"`
	WarehousingTime  int64        `gorm:"column:warehousing_time" json:"warehousing_time"`
	Dealer           int64        `gorm:"column:dealer" json:"dealer"`
	Manufacturer     int64        `gorm:"column:manufacturer" json:"manufacturer"`
	Manufacturers    Manufacturer `gorm:"ForeignKey:ID;AssociationForeignKey:Manufacturer" json:"Manufacturer"`
	Dealers          Dealer       `gorm:"ForeignKey:ID;AssociationForeignKey:Dealer" json:"Dealer"`
	Type             int64        `gorm:"column:type" json:"type"`
}

func (Warehousing) TableName() string {
	return "xt_warehouse"
}

type WarehousingInfo struct {
	ID               int64       `gorm:"column:id" json:"id"`
	WarehousingId    int64       `gorm:"column:warehousing_id" json:"warehousing_id"`
	GoodId           int64       `gorm:"column:good_id" json:"good_id"`
	GoodTypeId       int64       `gorm:"column:good_type_id" json:"good_type_id"`
	Number           string      `gorm:"column:number" json:"number"`
	ProductDate      int64       `gorm:"column:product_date" json:"product_date"`
	ExpiryDate       int64       `gorm:"column:expiry_date" json:"expiry_date"`
	WarehousingCount int64       `gorm:"column:warehousing_count" json:"warehousing_count"`
	Price            float64     `gorm:"column:price" json:"price"`
	TotalPrice       float64     `gorm:"column:total_price" json:"total_price"`
	Dealer           int64       `gorm:"column:dealer" json:"dealer"`
	Manufacturer     int64       `gorm:"column:manufacturer" json:"manufacturer"`
	Remark           string      `gorm:"column:remark" json:"remark"`
	Ctime            int64       `gorm:"column:ctime" json:"ctime"`
	Mtime            int64       `gorm:"column:mtime" json:"mtime"`
	Status           int64       `gorm:"column:status" json:"status"`
	OrgId            int64       `gorm:"column:org_id" json:"org_id"`
	IsReturn         int64       `gorm:"column:is_return" json:"is_return"`
	Warehousing      Warehousing `ForeignKey:WarehousingId json:"warehouse"`
	WarehousingOrder string      `gorm:"column:warehousing_order" json:"warehousing_order"`
	GoodInfo         GoodInfo    `gorm:"ForeignKey:ID;AssociationForeignKey:GoodId" `
	Type             int64       `gorm:"column:type" json:"type"`
}

func (WarehousingInfo) TableName() string {
	return "xt_warehouse_info"
}

type WarehouseOut struct {
	ID                      int64        `gorm:"column:id" json:"id"`
	WarehouseOutOrderNumber string       `gorm:"column:warehouse_out_order_number" json:"warehouse_out_order_number"`
	OperationTime           int64        `gorm:"column:operation_time" json:"operation_time"`
	Creater                 int64        `gorm:"column:creater" json:"creater"`
	OrgId                   int64        `gorm:"column:org_id" json:"org_id"`
	Modifier                int64        `gorm:"column:modifier" json:"modifier"`
	Remark                  string       `gorm:"column:remark" json:"remark"`
	Ctime                   int64        `gorm:"column:ctime" json:"ctime"`
	Mtime                   int64        `gorm:"column:mtime" json:"mtime"`
	Status                  int64        `gorm:"column:status" json:"status"`
	WarehouseOutTime        int64        `gorm:"column:warehouse_out_time" json:"warehouse_out_time"`
	Dealer                  int64        `gorm:"column:dealer" json:"dealer"`
	Manufacturer            int64        `gorm:"column:manufacturer" json:"manufacturer"`
	Manufacturers           Manufacturer `gorm:"ForeignKey:ID;AssociationForeignKey:Manufacturer" json:"Manufacturer"`
	Dealers                 Dealer       `gorm:"ForeignKey:ID;AssociationForeignKey:Dealer" json:"Dealer"`
	Type                    int64        `gorm:"column:type" json:"type"`
	IsSys                   int64        `gorm:"column:is_sys" json:"is_sys"`
}

func (WarehouseOut) TableName() string {
	return "xt_warehouse_out"
}

type WarehouseOutInfo struct {
	ID                      int64        `gorm:"column:id" json:"id"`
	WarehouseOutId          int64        `gorm:"column:warehouse_out_id" json:"warehouse_out_id"`
	GoodId                  int64        `gorm:"column:good_id" json:"good_id"`
	GoodTypeId              int64        `gorm:"column:good_type_id" json:"good_type_id"`
	WarehousingOutTarget    int64        `gorm:"column:warehousing_out_target" json:"warehousing_out_target"`
	Count                   int64        `gorm:"column:count" json:"count"`
	Price                   float64      `gorm:"column:price" json:"price"`
	TotalPrice              float64      `gorm:"column:total_price" json:"total_price"`
	ProductDate             int64        `gorm:"column:product_date" json:"product_date"`
	ExpiryDate              int64        `gorm:"column:expiry_date" json:"expiry_date"`
	Mtime                   int64        `gorm:"column:mtime" json:"mtime"`
	Ctime                   int64        `gorm:"column:ctime" json:"ctime"`
	Status                  int64        `gorm:"column:status" json:"status"`
	OrgId                   int64        `gorm:"column:org_id" json:"org_id"`
	Remark                  string       `gorm:"column:remark" json:"remark"`
	IsCancel                int64        `gorm:"column:is_cancel" json:"is_cancel"`
	WarehouseOut            WarehouseOut `ForeignKey:WarehouseOutId json:"WarehouseOut"`
	WarehouseOutOrderNumber string       `gorm:"column:warehouse_out_order_number" json:"warehouse_out_order_number"`
	GoodInfo                GoodInfo     `gorm:"ForeignKey:ID;AssociationForeignKey:GoodId" `
	Type                    int64        `gorm:"column:type" json:"type"`
	Dealer                  int64        `gorm:"column:dealer" json:"dealer"`
	Manufacturer            int64        `gorm:"column:manufacturer" json:"manufacturer"`
	IsSys                   int64        `gorm:"column:is_sys" json:"is_sys"`
	SysRecordTime           int64        `gorm:"column:sys_record_time" json:"sys_record_time"`
}

func (WarehouseOutInfo) TableName() string {
	return "xt_warehouse_out_info"
}

type SalesReturn struct {
	ID           int64  `gorm:"column:id" json:"id"`
	OrderNumber  string `gorm:"column:order_number" json:"order_number"`
	OperaTime    int64  `gorm:"column:opera_time" json:"opera_time"`
	Total        int64  `gorm:"column:total" json:"total"`
	Creater      int64  `gorm:"column:creater" json:"creater"`
	Ctime        int64  `gorm:"column:ctime" json:"ctime"`
	Mtime        int64  `gorm:"column:mtime" json:"mtime"`
	Status       int64  `gorm:"column:status" json:"status"`
	OrgId        int64  `gorm:"column:org_id" json:"org_id"`
	ReturnTime   int64  `gorm:"column:return_time" json:"return_time"`
	Manufacturer int64  `gorm:"column:manufacturer" json:"manufacturer"`
	Dealer       int64  `gorm:"column:dealer" json:"dealer"`
	Type         int64  `gorm:"column:type" json:"type"`
}

func (SalesReturn) TableName() string {
	return "xt_sales_return"
}

type SalesReturnInfo struct {
	ID            int64       `gorm:"column:id" json:"id"`
	GoodId        int64       `gorm:"column:good_id" json:"good_id"`
	SalesReturnId int64       `gorm:"column:sales_return_id" json:"sales_return_id"`
	GoodTypeId    int64       `gorm:"column:good_type_id" json:"good_type_id"`
	Count         int64       `gorm:"column:count" json:"count"`
	Price         float64     `gorm:"column:price" json:"price"`
	Total         float64     `gorm:"column:total" json:"total"`
	ProductDate   int64       `gorm:"column:product_date" json:"product_date"`
	ExpiryDate    int64       `gorm:"column:expiry_date" json:"expiry_date"`
	Ctime         int64       `gorm:"column:ctime" json:"ctime"`
	Mtime         int64       `gorm:"column:mtime" json:"mtime"`
	Status        int64       `gorm:"column:status" json:"status"`
	OrgId         int64       `gorm:"column:org_id" json:"org_id"`
	OrderNumber   string      `gorm:"column:order_number" json:"order_number"`
	Type          int64       `gorm:"column:type" json:"type"`
	SalesReturn   SalesReturn `ForeignKey:SalesReturnId json:"SalesReturn"`
	Dealer        int64       `gorm:"column:dealer" json:"dealer"`
	Manufacturer  int64       `gorm:"column:manufacturer" json:"manufacturer"`
}

func (SalesReturnInfo) TableName() string {
	return "xt_sales_return_info"
}

type CancelStockInfo struct {
	ID            int64       `gorm:"column:id" json:"id"`
	GoodId        int64       `gorm:"column:good_id" json:"good_id"`
	CancelStockId int64       `gorm:"column:cancel_stock_id" json:"cancel_stock_id"`
	GoodTypeId    int64       `gorm:"column:good_type_id" json:"good_type_id"`
	Count         int64       `gorm:"column:count" json:"count"`
	Price         float64     `gorm:"column:price" json:"price"`
	Total         float64     `gorm:"column:total" json:"total"`
	ProductDate   int64       `gorm:"column:product_date" json:"product_date"`
	ExpiryDate    int64       `gorm:"column:expiry_date" json:"expiry_date"`
	Ctime         int64       `gorm:"column:ctime" json:"ctime"`
	Mtime         int64       `gorm:"column:mtime" json:"mtime"`
	Status        int64       `gorm:"column:status" json:"status"`
	OrgId         int64       `gorm:"column:org_id" json:"org_id"`
	OrderNumber   string      `gorm:"column:order_number" json:"order_number"`
	Type          int64       `gorm:"column:type" json:"type"`
	CancelStock   CancelStock `ForeignKey:CancelStockId json:"CancelStock"`
	Dealer        int64       `gorm:"column:dealer" json:"dealer"`
	Manufacturer  int64       `gorm:"column:manufacturer" json:"manufacturer"`
}

func (CancelStockInfo) TableName() string {
	return "xt_cancel_stock_info"
}

type CancelStock struct {
	ID           int64  `gorm:"column:id" json:"id"`
	OrderNumber  string `gorm:"column:order_number" json:"order_number"`
	OperaTime    int64  `gorm:"column:opera_time" json:"opera_time"`
	Total        int64  `gorm:"column:total" json:"total"`
	Creater      int64  `gorm:"column:creater" json:"creater"`
	Ctime        int64  `gorm:"column:ctime" json:"ctime"`
	Mtime        int64  `gorm:"column:mtime" json:"mtime"`
	Status       int64  `gorm:"column:status" json:"status"`
	OrgId        int64  `gorm:"column:org_id" json:"org_id"`
	ReturnTime   int64  `gorm:"column:return_time" json:"return_time"`
	Dealer       int64  `gorm:"column:dealer" json:"dealer"`
	Manufacturer int64  `gorm:"column:manufacturer" json:"manufacturer"`
	Type         int64  `gorm:"column:type" json:"type"`
}

func (CancelStock) TableName() string {
	return "xt_cancel_stock"
}

type WarehousingGoodInfo struct {
	ID                int64        `gorm:"column:id" json:"id"`
	GoodCode          string       `gorm:"column:good_code" json:"good_code"`
	SpecificationName string       `gorm:"column:specification_name" json:"specification_name"`
	GoodTypeId        int64        `gorm:"column:good_type_id" json:"good_type_id"`
	GoodUnit          int64        `gorm:"column:good_unit" json:"good_unit"`
	Manufacturer      int64        `gorm:"column:manufacturer" json:"manufacturer"`
	Dealer            int64        `gorm:"column:dealer" json:"dealer"`
	Status            int64        `gorm:"column:status" json:"status"`
	GoodsType         GoodsType    `gorm:"ForeignKey:ID;AssociationForeignKey:GoodTypeId" json:"type"`
	Manufacturers     Manufacturer `gorm:"ForeignKey:Manufacturer;AssociationForeignKey:ID" json:"manufacturers"`
	Dealers           Dealer       `gorm:"ForeignKey:Dealer;AssociationForeignKey:ID" json:"dealers"`
	BuyPrice          float64      `gorm:"column:buy_price" json:"buy_price"`
	IsUser            int64        `gorm:"column:is_user" json:"is_user" form:"is_user"`
}

func (WarehousingGoodInfo) TableName() string {
	return "xt_good_information"
}

type WarehousingInfoConfig struct {
	ID                  int64               `gorm:"column:id" json:"id"`
	WarehousingId       int64               `gorm:"column:warehousing_id" json:"warehousing_id"`
	GoodId              int64               `gorm:"column:good_id" json:"good_id"`
	WarehousingGoodInfo WarehousingGoodInfo `gorm:"ForeignKey:GoodId;AssociationForeignKey:ID" json:"info"`
}

func (WarehousingInfoConfig) TableName() string {
	return "xt_warehouse_info"
}

type WarehousingOutInfoConfig struct {
	ID                  int64               `gorm:"column:id" json:"id"`
	WarehouseOutId      int64               `gorm:"column:warehouse_out_id" json:"warehouse_out_id"`
	GoodId              int64               `gorm:"column:good_id" json:"good_id"`
	WarehousingGoodInfo WarehousingGoodInfo `gorm:"ForeignKey:GoodId;AssociationForeignKey:ID" json:"info"`
}

func (WarehousingOutInfoConfig) TableName() string {
	return "xt_warehouse_out_info"
}

type AutomaticReduceDetail struct {
	ID                      int64     `gorm:"column:id" json:"id"`
	WarehouseOutId          int64     `gorm:"column:warehouse_out_id" json:"warehouse_out_id"`
	WarehouseOutOrderNumber string    `gorm:"column:warehouse_out_order_number" json:"warehouse_out_order_number"`
	PatientId               int64     `gorm:"column:patient_id" json:"patient_id"`
	Ctime                   int64     `gorm:"column:ctime" json:"ctime"`
	Mtime                   int64     `gorm:"column:mtime" json:"mtime"`
	Status                  int64     `gorm:"column:status" json:"status"`
	RecordTime              int64     `gorm:"column:record_time" json:"record_time"`
	OrgId                   int64     `gorm:"column:org_id" json:"org_id"`
	GoodId                  int64     `gorm:"column:good_id" json:"good_id"`
	GoodTypeId              int64     `gorm:"column:good_type_id" json:"good_type_id"`
	GoodInfo                GoodInfo  `gorm:"ForeignKey:GoodId;AssociationForeignKey:ID" json:"info"`
	GoodsType               GoodsType `gorm:"ForeignKey:GoodTypeId;AssociationForeignKey:ID" json:"type"`
	Patients                Patients  `gorm:"ForeignKey:PatientId;AssociationForeignKey:ID" json:"user"`
	Count                   int64     `gorm:"column:count" json:"count"`
}

func (AutomaticReduceDetail) TableName() string {
	return "xt_automatic_reduce_detail"
}
