common/structs/v2/seller.go

67 lines
2.0 KiB
Go
Raw Normal View History

2024-08-03 14:12:44 +08:00
package v2
2024-08-05 17:21:58 +08:00
import (
"time"
"gorm.io/gorm"
)
2024-08-03 14:12:44 +08:00
type SellerId string
2024-08-05 17:21:58 +08:00
// Seller 出货商
type Seller struct {
ID uint `gorm:"primary_key" json:"-"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
DeletedAt gorm.DeletedAt `gorm:"index"`
SellerId SellerId `gorm:"unique" json:"sellerId"`
// 出货商的名称
Name string `json:"name"`
// 出货商配置
Config SellerOption `gorm:"type:json;serializer:json" json:"config"`
//计算过程
CalculateProcess []CalculateProcess `json:"calculateProcess" gorm:"polymorphicType:Kind;polymorphicId:OwnerID;polymorphicValue:seller"`
}
type SellerOption struct {
Interval time.Duration `yaml:"interval" json:"interval"` //抓取间隔
}
2024-08-03 17:07:10 +08:00
2024-08-03 14:12:44 +08:00
// SellerArticle 销售商商品信息
type SellerArticle struct {
ID uint `gorm:"primary_key" json:"-"`
CreatedAt time.Time `json:"createdAt"`
// 商品的ID
ArticleID uint
// 货号
2024-08-03 17:07:10 +08:00
Pid string `gorm:"index" json:"pid"`
2024-08-03 14:12:44 +08:00
// 品牌
2024-08-03 17:07:10 +08:00
Brand Brand `gorm:"index" json:"brand"`
// 销售商商品链接
2024-08-03 14:12:44 +08:00
Link string `json:"link"`
// 销售商id
SellerId SellerId `gorm:"index:sellerId_sku,unique" json:"sellerId"`
// 销售商的sku
SkuID string `gorm:"index:sellerId_sku,unique" json:"skuID"`
// 当前成本价
Sell SellerPrice `json:"sell" gorm:"type:json;serializer:json"`
// 历史出售价格
HistoryPrice []SellerPrice `json:"historyPrice"`
2024-08-05 17:21:58 +08:00
// 计算过程
CalculateProcess []CalculateProcess `json:"calculateProcess" gorm:"polymorphicType:Kind;polymorphicId:OwnerID;polymorphicValue:sellerArticle"`
2024-08-03 14:12:44 +08:00
}
// SellerPrice 供应商成本价格
type SellerPrice struct {
ID uint `gorm:"primary_key" json:"-"`
CreatedAt time.Time `json:"createdAt"`
SellerArticleID uint `gorm:"index"`
// 出售最低价,单位为分
OriginalPrice int `json:"originalPrice"`
// 能拿到手的最终价格,单位为分
FinalPrice int `json:"finalPrice"`
//计算过程
CalMark string `json:"calMark"`
}