Files

43 lines
1.6 KiB
Go
Raw Permalink Normal View History

package schema
import (
"entgo.io/ent"
"entgo.io/ent/dialect/entsql"
"entgo.io/ent/schema"
"entgo.io/ent/schema/field"
"entgo.io/ent/schema/index"
)
// Permission 权限/菜单
// 模型移植自 MESschema/permission.go),按 WMS 约定调整字段命名与时间类型。
// type 区分两类:
// - MENU 菜单权限:对应侧栏菜单项,path 为前端路由
// - BUTTON 按钮权限:对应页面内的操作按钮,无 path
type Permission struct {
ent.Schema
}
func (Permission) Annotations() []schema.Annotation {
return []schema.Annotation{entsql.Annotation{Table: "permissions"}}
}
func (Permission) Fields() []ent.Field {
return []ent.Field{
field.String("code").Unique().MaxLen(64).Comment("权限编码,如 inbound:view"),
field.String("name").MaxLen(64).Comment("名称"),
field.String("type").Default("MENU").MaxLen(20).Comment("类型 MENU菜单/BUTTON按钮"),
2026-09-03 18:13:59 +08:00
field.String("parent_code").Default("").MaxLen(64).Optional().
Comment("所属菜单编码(BUTTON 填其所属 MENU 的 code;全局按钮填空)"),
field.String("path").Default("").MaxLen(128).Optional().Comment("前端路由(菜单类)"),
field.String("icon").Default("").MaxLen(64).Optional().Comment("图标(菜单类)"),
field.Int("sort").Default(0).Optional().Comment("排序"),
field.String("remark").Default("").MaxLen(255).Optional().Comment("备注"),
field.Int64("created_at").DefaultFunc(nowUnix).Comment("创建时间"),
field.Int64("updated_at").DefaultFunc(nowUnix).Comment("更新时间"),
}
}
func (Permission) Indexes() []ent.Index {
return []ent.Index{index.Fields("code").Unique()}
}