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