common/structs/v2/article.go

62 lines
1.5 KiB
Go
Raw Normal View History

2024-08-03 14:12:44 +08:00
package v2
import (
"time"
)
2024-08-03 17:07:10 +08:00
type Brand string
const (
Brand_Coach Brand = "coach"
)
2024-08-03 14:12:44 +08:00
// Article 商品
type Article struct {
2024-08-27 14:19:31 +08:00
ID uint `gorm:"primary_key" json:"id"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
2024-08-03 14:12:44 +08:00
Name string `gorm:"index" json:"name"`
EnglishName string `gorm:"index" json:"englishName"`
// 货号
Pid string `gorm:"index:article_pid_brand,unique" json:"pid"`
// 品牌
2024-08-03 17:07:10 +08:00
Brand Brand `gorm:"index:article_pid_brand,unique" json:"brand"`
2024-08-03 14:12:44 +08:00
// 描述
Desc string `json:"desc"`
// 图片
Image string `json:"image"`
// 可以购买的
Available bool `json:"available"`
2024-08-31 12:39:40 +08:00
// 排除
Exclude bool `json:"exclude"`
// 屏蔽 如果一个商品被屏蔽,那么所有供应商和销售商都不会继续抓取,而且页面上也不会继续显示
Ban bool `json:"ban"`
2024-09-01 14:16:21 +08:00
// 最低成本价
CostPrice float64 `json:"costPrice"`
2024-08-03 14:12:44 +08:00
// 供应商报价列表
Providers []ProviderArticle `json:"providers" gorm:"foreignKey:ArticleID"`
2024-09-01 14:16:21 +08:00
// 最低出售价
SellPrice float64 `json:"sellPrice"`
2024-08-03 14:12:44 +08:00
// 销售商报价列表
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
}