common/structs/v2/article.go
timerzz 6c981e119c feat ast => ats
feat 添加trace ats字段
2024-12-02 14:41:20 +08:00

62 lines
1.5 KiB
Go

package v2
import (
"time"
)
type Brand string
const (
Brand_Coach Brand = "coach"
)
// Article 商品
type Article struct {
ID uint `gorm:"primary_key" json:"id"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
Name string `gorm:"index" json:"name"`
EnglishName string `gorm:"index" json:"englishName"`
// 货号
Pid string `gorm:"index:article_pid_brand,unique" json:"pid"`
// 品牌
Brand Brand `gorm:"index:article_pid_brand,unique" json:"brand"`
// 描述
Desc string `json:"desc"`
// 图片
Image string `json:"image"`
// 可以购买的
Available bool `json:"available"`
// 排除
Exclude bool `json:"exclude"`
// 屏蔽 如果一个商品被屏蔽,那么所有供应商和销售商都不会继续抓取,而且页面上也不会继续显示
Ban bool `json:"ban"`
// 最低成本价
CostPrice float64 `json:"costPrice"`
// 供应商报价列表
Providers []ProviderArticle `json:"providers" gorm:"foreignKey:ArticleID"`
// 最低出售价
SellPrice float64 `json:"sellPrice"`
// 销售商报价列表
Sellers []SellerArticle `json:"sellers" gorm:"foreignKey:ArticleID"`
// 利润率
Rate float64 `json:"rate" gorm:"index"` //利润率
//备注
Remark string `json:"remark"`
}
func (a *Article) SetBan(ban bool) *Article {
a.Ban = ban
for _, provider := range a.Providers {
provider.Exclude = a.Ban
provider.Watch = nil
}
for _, seller := range a.Sellers {
seller.Exclude = a.Ban
}
return a
}