73 lines
3.5 KiB
Go
73 lines
3.5 KiB
Go
package entity
|
||
|
||
import (
|
||
consts "assets/consts/category"
|
||
|
||
"gitea.com/red-future/common/beans"
|
||
)
|
||
|
||
type categoryCol struct {
|
||
beans.SQLBaseCol
|
||
Name string
|
||
ParentId string
|
||
Path string
|
||
Level string
|
||
IsLeafNode string
|
||
Sort string
|
||
Image string
|
||
Attrs string
|
||
Status string
|
||
}
|
||
|
||
var CategoryCol = categoryCol{
|
||
SQLBaseCol: beans.DefSQLBaseCol,
|
||
Name: "name",
|
||
ParentId: "parent_id",
|
||
Path: "path",
|
||
Level: "level",
|
||
IsLeafNode: "is_leaf_node",
|
||
Sort: "sort",
|
||
Image: "image",
|
||
Attrs: "attrs",
|
||
Status: "status",
|
||
}
|
||
|
||
// Category 分类实体
|
||
type Category struct {
|
||
beans.SQLBaseDO `orm:",inherit"`
|
||
Name string `orm:"name" json:"name"` // 分类名称
|
||
ParentId int64 `orm:"parent_id" json:"parentId"` // 父分类ID,为空表示根分类
|
||
Path string `orm:"path" json:"path"` // 分类路径,如:/root/parent/child
|
||
Level int `orm:"level" json:"level"` // 分类层级
|
||
IsLeafNode *bool `orm:"is_leaf_node" json:"isLeafNode"` // 是叶子节点
|
||
Sort int `orm:"sort" json:"sort"` // 排序
|
||
Image string `orm:"image" json:"image"` // 分类图片
|
||
Status consts.CategoryStatus `orm:"status" json:"status"` // 状态:1启用/0禁用
|
||
Attrs []CategoryAttr `orm:"attrs" json:"attrs,omitempty"` // 分类属性 CategoryAttr
|
||
// 使用场景说明:
|
||
// 1. 商品分类属性:为该分类下的商品定义标准化的属性模板,如服装分类可定义尺寸、颜色、材质等属性
|
||
// 2. 服务分类属性:为服务类目定义特性参数,如咨询服务可定义服务时长、服务方式、专业领域等
|
||
// 3. 商品发布约束:当商品归属于某个分类时,必须填写该分类定义的必填属性
|
||
// 4. 搜索筛选:基于分类属性进行商品筛选和搜索,提升用户体验
|
||
// 5. 数据标准化:确保同一分类下的商品具有统一的属性结构,便于数据管理
|
||
// 支持的属性类型:文本(text)、数字(number)、日期(date)、单选(select)、多选(multi_select)、布尔(boolean)、图片(image)
|
||
}
|
||
|
||
// CategoryAttr 分类属性
|
||
// Attrs 用于定义分类下商品或服务的标准化属性模板,确保同类商品属性统一
|
||
type CategoryAttr struct {
|
||
Name string `json:"name"` // 属性名称,如:尺寸、颜色、品牌等
|
||
Type string `json:"type"` // 属性类型:text文本/number数字/date日期/select选择/multi_select多选/boolean布尔/image图片
|
||
DictType string `json:"dictType"` // 字典类型,如果是select/multi_select类型时有效
|
||
Required bool `json:"required"` // 是否必填,true表示商品发布时必须填写此属性
|
||
Options []FieldOption `json:"options"` // 选项配置,JSON字符串格式,用于select/multi_select类型的可选值列表 // 示例:'{"options":[{"label":"红色","value":"red"},{"label":"蓝色","value":"blue"}]}'
|
||
Description string `json:"description"` // 属性描述,向用户说明此属性的具体含义和填写要求
|
||
Sort int `json:"sort"` // 排序权重,数值越小排序越靠前,用于属性在界面的显示顺序
|
||
}
|
||
|
||
// FieldOption 字段选项
|
||
type FieldOption struct {
|
||
Label string `json:"label" dc:"选项标签"`
|
||
Value interface{} `json:"value" dc:"选项值"`
|
||
}
|