62 lines
1.5 KiB
Go
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
|
|
}
|