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 权限/菜单 // 模型移植自 MES(schema/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按钮"), 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()} }