package v2 import ( "time" ) type ProviderStatus int const ( ProviderStatus_Normal = iota // 正在拉取供应商商品信息 ProviderStatus_Pulling // 出错 ProviderStatus_Error ) type ProviderId string type Provider struct { ID uint `gorm:"primary_key" json:"id"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` ProviderId ProviderId `gorm:"unique" json:"providerId"` // 供应商的名称 Name string `json:"name"` // 供应商状态 Status ProviderStatus `json:"status"` // 错误信息 Msg string `json:"msg"` // 拉取时间 PullAt time.Time `json:"pullAt"` // 供应商配置 Config ProviderOption `gorm:"type:json;serializer:json" json:"config"` //计算过程 CalculateProcess []CalculateProcess `json:"calculateProcess" gorm:"polymorphicType:Kind;polymorphicId:OwnerID;polymorphicValue:provider"` // 备注 Remark string `json:"remark,omitempty"` } type ProviderOption struct { Ticker string `yaml:"ticker" json:"ticker"` //每天几点抓取 ExchangeRate float64 `yaml:"exchangeRate" json:"exchangeRate"` //汇率 Freight float64 `yaml:"freight" json:"freight"` //运费 } // ProviderArticle 供应商商品信息 type ProviderArticle 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 ProviderId ProviderId `gorm:"index:providerId_sku,unique" json:"providerId"` // 供应商的sku SkuID string `gorm:"index:providerId_sku,unique" json:"skuID"` // 当前成本价 Cost ProviderPrice `json:"cost" gorm:"type:json;serializer:json"` // 是否排除,如果排除,就不用拉取价格 Exclude bool `json:"exclude"` // 历史成本价格 HistoryPrice []ProviderPrice `json:"historyPrice"` // 计算过程 CalculateProcess []CalculateProcess `json:"calculateProcess" gorm:"polymorphicType:Kind;polymorphicId:OwnerID;polymorphicValue:providerArticle"` } // ProviderPrice 供应商成本价格 type ProviderPrice struct { ID uint `gorm:"primary_key" json:"-"` CreatedAt time.Time `json:"createdAt"` ProviderArticleID uint `gorm:"index"` // 供应商原始价格,美元、人名币、加元,单位为分 OriginalPrice int `json:"originalPrice"` // 计算优惠后最终价格,人名币,单位为分 FinalPrice int `json:"finalPrice"` // 计算完优惠的最终的价格 CalMark string `json:"calMark"` //计算优惠的过程 }