package models

import "XT/models"

type GoodsType struct {
	ID              int64  `gorm:"column:id" json:"id"`
	TypeCode        string `gorm:"column:type_code" json:"type_code"`
	TypeName        string `gorm:"column:type_name" json:"type_name"`
	Remark          string `gorm:"column:remark" json:"remark"`
	Ctime           int64  `gorm:"column:ctime" json:"ctime"`
	Mtime           int64  `gorm:"column:mtime" json:"mtime"`
	Creater         int64  `gorm:"column:creater" json:"creater"`
	Modifier        int64  `gorm:"column:modifier" json:"modifier"`
	OrgId           int64  `gorm:"column:org_id" json:"org_id"`
	Status          int64  `gorm:"column:status" json:"status"`
	Type            int64  `gorm:"column:type" json:"type"`
	Number          int64  `gorm:"column:number" json:"number"`
	OutStock        int64  `gorm:"column:out_stock" json:"out_stock" form:"out_stock"`
	StockAttribute  int64  `gorm:"column:stock_attribute" json:"stock_attribute" form:"stock_attribute"`
	StockAttribute1 int64  `gorm:"-" json:"stock_attribute" form:"stock_attribute"`
}

func (GoodsType) TableName() string {
	return "xt_goods_type"
}

type GoodInfo struct {
	ID                     int64   `gorm:"column:id" json:"id" form:"id"`
	GoodCode               string  `gorm:"column:good_code" json:"good_code" form:"good_code"`
	SpecificationName      string  `gorm:"column:specification_name" json:"specification_name" form:"specification_name"`
	GoodTypeId             int64   `gorm:"column:good_type_id" json:"good_type_id" form:"good_type_id"`
	GoodUnit               int64   `gorm:"column:good_unit" json:"good_unit" form:"good_unit"`
	BuyPrice               float64 `gorm:"column:buy_price" json:"buy_price" form:"buy_price"`
	SellPrice              float64 `gorm:"column:sell_price" json:"sell_price" form:"sell_price"`
	Remark                 string  `gorm:"column:remark" json:"remark" form:"remark"`
	Ctime                  int64   `gorm:"column:ctime" json:"ctime" form:"ctime"`
	Mtime                  int64   `gorm:"column:mtime" json:"mtime" form:"mtime"`
	Manufacturer           int64   `gorm:"column:manufacturer" json:"manufacturer" form:"manufacturer"`
	Dealer                 int64   `gorm:"column:dealer" json:"dealer" form:"dealer"`
	ExpiryDateWarnDayCount int64   `gorm:"column:expiry_date_warn_day_count" json:"expiry_date_warn_day_count" form:"expiry_date_warn_day_count"`
	StockWarnCount         int64   `gorm:"column:stock_warn_count" json:"stock_warn_count" form:"stock_warn_count"`
	IsReuse                int64   `gorm:"column:is_reuse" json:"is_reuse" form:"is_reuse"`
	Status                 int64   `gorm:"column:status" json:"status" form:"status"`
	FilmArea               string  `gorm:"column:film_area" json:"film_area" form:"film_area"`
	IsUse                  int64   `gorm:"column:is_use" json:"is_use" form:"is_use"`
	FilmMaterialQuality    string  `gorm:"column:film_material_quality" json:"film_material_quality" form:"film_material_quality"`
	OrgId                  int64   `gorm:"column:org_id" json:"org_id" form:"org_id"`
	Modifier               int64   `gorm:"column:modifier" json:"modifier" form:"modifier"`
	Creater                int64   `gorm:"column:creater" json:"creater" form:"creater"`
	GoodName               string  `gorm:"column:good_name" json:"good_name" form:"good_name"`
	Pinyin                 string  `gorm:"column:pinyin" json:"pinyin" form:"pinyin"`
	Wubi                   string  `gorm:"column:wubi" json:"wubi" form:"wubi"`
	GoodKind               int64   `gorm:"column:good_kind" json:"good_kind" form:"good_kind"`
	MedicalInsuranceLevel  int64   `gorm:"column:medical_insurance_level" json:"medical_insurance_level" form:"medical_insurance_level"`
	RetailPrice            float64 `gorm:"column:retail_price" json:"retail_price" form:"retail_price"`
	MedicalInsuranceNumber string  `gorm:"column:medical_insurance_number" json:"medical_insurance_number" form:"medical_insurance_number"`
	ProvincesCode          string  `gorm:"column:provinces_code" json:"provinces_code" form:"provinces_code"`

	Code               string    `gorm:"column:code" json:"code" form:"code"`
	IsSpecialDiseases  int64     `gorm:"column:is_special_diseases" json:"is_special_diseases" form:"is_special_diseases"`
	IsRecord           int64     `gorm:"column:is_record" json:"is_record" form:"is_record"`
	StatisticsCategory int64     `gorm:"column:statistics_category" json:"statistics_category" form:"statistics_category"`
	GoodStatus         string    `gorm:"column:good_status" json:"good_status" form:"good_status"`
	DefaultCount       int64     `gorm:"column:default_count" json:"default_count" form:"default_count"`
	Sign               int64     `gorm:"column:sign" json:"sign" form:"sign"`
	IsDefault          int64     `gorm:"column:is_default" json:"is_default" form:"is_default"`
	IsChargeUse        int64     `gorm:"column:is_charge_use" json:"is_charge_use" form:"is_charge_use"`
	IsChargePredict    int64     `gorm:"column:is_charge_predict" json:"is_charge_predict" form:"is_charge_predict"`
	IsStatisticsWork   int64     `gorm:"column:is_statistics_work" json:"is_statistics_work" form:"is_statistics_work"`
	Sort               int64     `gorm:"column:sort" json:"sort" form:"sort"`
	IsDoctorUse        int64     `gorm:"column:is_doctor_use" json:"is_doctor_use" form:"is_doctor_use"`
	Agent              string    `gorm:"column:agent" json:"agent" form:"agent"`
	GoodNumber         string    `gorm:"column:good_number" json:"good_number" form:"good_number"`
	GoodsType          GoodsType `gorm:"ForeignKey:ID;AssociationForeignKey:GoodTypeId" json:"type"`
	IsUser             int64     `gorm:"column:is_user" json:"is_user" form:"is_user"`
}

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

type GoodsTypeOne struct {
	ID             int64              `gorm:"column:id" json:"id"`
	TypeCode       string             `gorm:"column:type_code" json:"type_code"`
	TypeName       string             `gorm:"column:type_name" json:"type_name"`
	Remark         string             `gorm:"column:remark" json:"remark"`
	Ctime          int64              `gorm:"column:ctime" json:"ctime"`
	Mtime          int64              `gorm:"column:mtime" json:"mtime"`
	Creater        int64              `gorm:"column:creater" json:"creater"`
	Modifier       int64              `gorm:"column:modifier" json:"modifier"`
	OrgId          int64              `gorm:"column:org_id" json:"org_id"`
	Status         int64              `gorm:"column:status" json:"status"`
	Type           int64              `gorm:"column:type" json:"type"`
	Number         int64              `gorm:"column:number" json:"number"`
	OutStock       int64              `gorm:"column:out_stock" json:"out_stock" form:"out_stock"`
	StockAttribute int64              `gorm:"column:stock_attribute" json:"stock_attribute" form:"stock_attribute"`
	GoodInfo       []*models.GoodInfo `gorm:"ForeignKey:GoodTypeId;AssociationForeignKey:ID" json:"GoodInfo"`
}

func (GoodsTypeOne) TableName() string {
	return "xt_goods_type"
}
