182 lines
4.7 KiB
Go
182 lines
4.7 KiB
Go
package model
|
||
|
||
const (
|
||
SkuCategoryNormal = 0
|
||
SkuCategorySpecial = 1
|
||
)
|
||
|
||
const (
|
||
SpecUnitG = 0
|
||
SpecUnitKG = 1
|
||
SpecUnitL = 2
|
||
SpecUnitML = 3
|
||
)
|
||
|
||
const (
|
||
SkuNameStatusNormal = 0
|
||
SkuNameStatusDontSale = 1
|
||
)
|
||
|
||
var (
|
||
SpecUnitNames = []string{
|
||
"g",
|
||
"kg",
|
||
"L",
|
||
"ml",
|
||
}
|
||
)
|
||
|
||
var (
|
||
UnitNames = []string{
|
||
"份",
|
||
"袋",
|
||
"瓶",
|
||
"只",
|
||
"组",
|
||
"个",
|
||
"盒",
|
||
"把",
|
||
"半只",
|
||
"包",
|
||
"条",
|
||
"根",
|
||
"箱",
|
||
"听",
|
||
"套",
|
||
"罐",
|
||
"件",
|
||
"块",
|
||
"片",
|
||
"支",
|
||
"杯",
|
||
}
|
||
)
|
||
|
||
// 这个指的是厂商(比如京东到家,饿百)自已的商品分类,与商家自己的商品分类是两回事
|
||
type SkuVendorCategory struct {
|
||
ModelIDCUL
|
||
|
||
VendorCategoryID string `orm:"size(48);column(vendor_category_id)" json:"vendorCategoryID"`
|
||
VendorID int `orm:"column(vendor_id)" json:"vendorID"`
|
||
Name string `orm:"size(255);index" json:"name"`
|
||
IsLeaf int8 `json:"isLeaf"`
|
||
Level int `json:"level"`
|
||
ParentID string `orm:"column(parent_id);size(255);index" json:"parentID"` // 父ID,引用的是VendorCategoryID而不是ID
|
||
}
|
||
|
||
func (*SkuVendorCategory) TableUnique() [][]string {
|
||
return [][]string{
|
||
[]string{"VendorCategoryID", "VendorID"},
|
||
}
|
||
}
|
||
|
||
// 基础数据,除了商家商品类别外,基本都以京东到家为准
|
||
type SkuCategory struct {
|
||
ModelIDCULD
|
||
|
||
Name string `orm:"size(255)" json:"name"`
|
||
ParentID int `orm:"column(parent_id)" json:"parentID"`
|
||
Level int8 `json:"level"`
|
||
Type int8 `json:"type"` // 类别类型,即是普通类别还是特殊用于做活动的类别
|
||
Seq int `json:"seq"`
|
||
|
||
JdID int64 `orm:"column(jd_id);index" json:"jdID"` // 这个是指商家自己的商品类别在京东平台上的ID
|
||
JdCategoryID int `orm:"column(jd_category_id)" json:"jdCategoryID"` // 这个是指对应的京东商品类别
|
||
|
||
ElmCategoryID int64 `orm:"column(elm_category_id)" json:"elmCategoryID"` // 这个是指对应的饿了么商品类别
|
||
EbaiCategoryID int64 `orm:"column(ebai_category_id)" json:"ebaiCategoryID"` // 这个是指对应的饿百商品类别
|
||
|
||
JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"`
|
||
}
|
||
|
||
func (*SkuCategory) TableUnique() [][]string {
|
||
return [][]string{
|
||
[]string{"Name", "DeletedAt"},
|
||
}
|
||
}
|
||
|
||
type SkuName struct {
|
||
ModelIDCUL
|
||
|
||
Prefix string `orm:"size(255)" json:"prefix"`
|
||
Name string `orm:"size(255)" json:"name"`
|
||
Comment string `orm:"size(255)" json:"comment"`
|
||
|
||
BrandID int `orm:"column(brand_id);default(0)" json:"brandID"` // 此属性暂时没有使用
|
||
CategoryID int `orm:"column(category_id)" json:"categoryID"` // 标准类别
|
||
Status int `json:"status"`
|
||
|
||
IsGlobal int8 `orm:"default(1)" json:"isGlobal"` // 是否是全部(全国)可见,如果否的话,可见性由SkuPlace决定
|
||
Unit string `orm:"size(8)" json:"unit"`
|
||
Price int `json:"price"` // 单位为分,标准价,不为份的就为实际标准价,为份的为每市斤价,实际还要乘质量。todo 为份的确定必须有质量
|
||
Img string `orm:"size(255)" json:"img"`
|
||
ElmImgHashCode string `orm:"size(64)" json:"-"`
|
||
}
|
||
|
||
// func (*SkuName) TableUnique() [][]string {
|
||
// return [][]string{
|
||
// []string{"Name", "Prefix", "Unit"},
|
||
// }
|
||
// }
|
||
|
||
type Sku struct {
|
||
ModelIDCUL
|
||
|
||
CategoryID int `orm:"column(category_id)"` // 特殊类别,一般用于秒杀,特价之类的特殊类别
|
||
NameID int `orm:"column(name_id)"` // todo 这个索引应该要求唯一
|
||
SpecQuality float32
|
||
SpecUnit string `orm:"size(8)"` // 质量或容量
|
||
Weight int // 重量/质量,单位为克,当相应的SkuName的SpecUnit为g或kg时,必须等于SpecQuality
|
||
|
||
JdID int64 `orm:"column(jd_id)"`
|
||
}
|
||
|
||
func (*Sku) TableUnique() [][]string {
|
||
return [][]string{
|
||
[]string{"NameID", "SpecQuality", "SpecUnit"},
|
||
}
|
||
}
|
||
|
||
type SkuNamePlaceBind struct {
|
||
ModelIDCUL
|
||
|
||
SkuNameID int `orm:"column(sku_name_id)"`
|
||
PlaceCode int
|
||
}
|
||
|
||
func (*SkuNamePlaceBind) TableUnique() [][]string {
|
||
return [][]string{
|
||
[]string{"SkuNameID", "PlaceCode"},
|
||
}
|
||
}
|
||
|
||
// 以下为门店相关数据
|
||
type StoreSkuCategoryMap struct {
|
||
ModelIDCUL
|
||
|
||
StoreID int `orm:"column(store_id)"`
|
||
SkuCategoryID int `orm:"column(sku_category_id)"`
|
||
|
||
ElmID int64 `orm:"column(elm_id);index"`
|
||
EbaiID int64 `orm:"column(ebai_id);index"`
|
||
}
|
||
|
||
type StoreSkuBind struct {
|
||
ModelIDCUL
|
||
|
||
StoreID int `orm:"column(store_id)"`
|
||
SkuID int `orm:"column(sku_id)"`
|
||
SubStoreID int `orm:"column(sub_store_id)"`
|
||
Price int // 单位为分,不用int64的原因是这里不需要累加
|
||
Status int
|
||
|
||
ElmID int64 `orm:"column(elm_id);index"`
|
||
EbaiID int64 `orm:"column(ebai_id);index"`
|
||
}
|
||
|
||
func (*StoreSkuBind) TableUnique() [][]string {
|
||
return [][]string{
|
||
[]string{"StoreID", "SkuID"},
|
||
}
|
||
}
|