using NetAdmin.Domain.DbMaps.Dependency; using NetAdmin.Domain.DbMaps.Dependency.Fields; using NetAdmin.Domain.Enums.Sys; namespace NetAdmin.Domain.DbMaps.Sys; /// /// 菜单表 /// [Index($"idx_{{tablename}}_{nameof(Name)}", nameof(Name), true)] [Table(Name = Chars.FLG_DB_TABLE_NAME_PREFIX + nameof(Sys_Menu))] public record Sys_Menu : VersionEntity, IFieldSort { /// /// 子节点或详情页需要高亮的上级菜单路由地址 /// [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_127)] [JsonIgnore] public virtual string Active { get; init; } /// /// 子节点 /// [JsonIgnore] [Navigate(nameof(ParentId))] public IEnumerable Children { get; init; } /// /// 背景颜色 /// [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_7)] [JsonIgnore] public virtual string Color { get; init; } /// /// 组件 /// [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_63)] [JsonIgnore] public virtual string Component { get; init; } /// /// 是否整页路由 /// [Column] [JsonIgnore] public virtual bool FullPageRouting { get; init; } /// /// 是否隐藏菜单 /// [Column] [JsonIgnore] public virtual bool Hidden { get; init; } /// /// 是否隐藏面包屑 /// [Column] [JsonIgnore] public virtual bool HiddenBreadCrumb { get; init; } /// /// 图标 /// [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_31)] [JsonIgnore] public virtual string Icon { get; init; } /// /// 菜单名称 /// [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_63)] [JsonIgnore] public virtual string Name { get; init; } /// /// 父编号 /// [Column] [JsonIgnore] public virtual long ParentId { get; init; } /// /// 菜单路径 /// [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_127)] [JsonIgnore] public virtual string Path { get; init; } /// /// 重定向地址 /// [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_127)] [JsonIgnore] public virtual string Redirect { get; init; } /// /// 拥有此菜单的角色集合 /// [JsonIgnore] [Navigate(ManyToMany = typeof(Sys_RoleMenu))] public ICollection Roles { get; init; } /// /// 排序值,越大越前 /// [Column] [JsonIgnore] public virtual long Sort { get; init; } /// /// 标签 /// [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_31)] [JsonIgnore] public virtual string Tag { get; init; } /// /// 菜单标题 /// [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_63)] [JsonIgnore] public virtual string Title { get; init; } /// /// 菜单类型 /// [Column] [JsonIgnore] public virtual MenuTypes Type { get; init; } }