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.CategoryStatusType `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:"选项值"` }