package v2 import ( "time" ) type SellerStatus int const ( SellerStatus_Normal = iota // 正在拉取销售商商品信息 SellerStatus_Pulling // 正在计算 SellerStatus_Calculating // 出错 SellerStatus_Error ) type SellerId string // Seller 出货商 type Seller struct { ID uint `gorm:"primary_key" json:"id"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` SellerId SellerId `gorm:"unique" json:"sellerId"` // 出货商的名称 Name string `json:"name"` // 供应商状态 Status SellerStatus `json:"status"` // 错误信息 Msg string `json:"msg"` // 拉取时间 PullAt time.Time `json:"pullAt"` // 出货商配置 Config SellerOption `gorm:"type:json;serializer:json" json:"config"` //计算过程 CalculateProcess []CalculateProcess `json:"calculateProcess" gorm:"polymorphicType:Kind;polymorphicId:OwnerID;polymorphicValue:seller"` // 备注 Remark string `json:"remark,omitempty"` } type SellerOption struct { Ticker string `yaml:"ticker" json:"ticker"` //定时抓取 } // SellerArticle 销售商商品信息 type SellerArticle struct { ID uint `gorm:"primary_key" json:"-"` CreatedAt time.Time `json:"createdAt"` // 商品的ID ArticleID uint // 货号 Pid string `gorm:"index" json:"pid"` // 品牌 Brand Brand `gorm:"index" json:"brand"` // 销售商商品链接 Link string `json:"link"` // 销售商id SellerId SellerId `gorm:"index:sellerId_sku,unique" json:"sellerId"` // 销售商的sku SkuID string `gorm:"index:sellerId_sku,unique" json:"skuID"` // 销售商的spuId SpuID string `json:"spuID"` // 是否排除 Exclude bool `json:"exclude"` // 当前成本价 Sell SellerPrice `json:"sell" gorm:"type:json;serializer:json"` // 历史出售价格 HistoryPrice []SellerPrice `json:"historyPrice"` // 计算过程 CalculateProcess []CalculateProcess `json:"calculateProcess" gorm:"polymorphicType:Kind;polymorphicId:OwnerID;polymorphicValue:sellerArticle"` } // SellerPrice 供应商成本价格 type SellerPrice struct { ID uint `gorm:"primary_key" json:"-"` CreatedAt time.Time `json:"createdAt"` SellerArticleID uint `gorm:"index"` // 出售最低价 OriginalPrice float64 `json:"originalPrice"` // 能拿到手的最终价格 FinalPrice float64 `json:"finalPrice"` //计算过程 CalMark string `json:"calMark"` }