ba127826b2
- model/product_attr.go: 新增 4 张字典表 struct(TenantBase 范式)
- model/product.go: Product 增加 4 个可空外键 + belongs-to 关联
- handler/product_attr.go: 4 组 16 个 CRUD handler(shop_id 隔离)
- handler/product.go: FindOrCreate/Update 支持写入 4 个属性 ID
- handler/public.go: Preload 4 表 + 三级回退介绍 + 默认话术常量
- router/router.go: /product-options/{origins,shelf-lives,storages,description-docs} 路由
- main.go: AutoMigrate 注册 4 个新 model
- testutil/setup.go: SQLite 测试库补齐新列与新表
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
35 lines
1.2 KiB
Go
35 lines
1.2 KiB
Go
package model
|
|
|
|
// ProductOriginOption 产地字典(门店级)
|
|
type ProductOriginOption struct {
|
|
TenantBase
|
|
Code string `gorm:"size:50" json:"code"`
|
|
Name string `gorm:"size:200;not null" json:"name"`
|
|
Remark string `gorm:"size:500" json:"remark"`
|
|
}
|
|
|
|
// ProductShelfLifeOption 保质期字典(门店级)
|
|
type ProductShelfLifeOption struct {
|
|
TenantBase
|
|
Code string `gorm:"size:50" json:"code"`
|
|
Name string `gorm:"size:200;not null" json:"name"` // 如「无限期(适饮)」「24个月」
|
|
Remark string `gorm:"size:500" json:"remark"`
|
|
}
|
|
|
|
// ProductStorageOption 储存方式字典(门店级)
|
|
type ProductStorageOption struct {
|
|
TenantBase
|
|
Code string `gorm:"size:50" json:"code"`
|
|
Name string `gorm:"size:200;not null" json:"name"` // 如「阴凉干燥、避光保存」
|
|
Remark string `gorm:"size:500" json:"remark"`
|
|
}
|
|
|
|
// ProductDescriptionDoc 商品描述文档字典(门店级)
|
|
// Title = 酒类型(如「酱香型白酒」),Content = 商品介绍正文
|
|
type ProductDescriptionDoc struct {
|
|
TenantBase
|
|
Title string `gorm:"size:200;not null" json:"title"`
|
|
Content string `gorm:"type:text" json:"content"`
|
|
Remark string `gorm:"size:500" json:"remark"`
|
|
}
|