using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using OpenAuth.Repository.Core;
using SqlSugar;

namespace OpenAuth.Repository.Domain
{
    /// <summary>
    /// 功能模块表
    /// </summary>
    [SugarTable("sys_module")]
    public partial class SysModule : TreeEntity<string>
    {
        /// <summary>
        /// 主页面URL
        /// </summary>
        [Description("主页面URL")]
        public string Url { get; set; }
        /// <summary>
        /// 节点图标文件名称
        /// </summary>
        [Description("节点图标文件名称")]
        public string IconName { get; set; }
        /// <summary>
        /// 当前状态，0：正常，-1：隐藏，不在导航列表中显示
        /// </summary>
        [Description("当前状态")]
        public int Status { get; set; }

        /// <summary>
        /// 排序号
        /// </summary>
        [Description("排序号")]
        public int SortNo { get; set; }

        /// <summary>
        /// 模块标识
        /// </summary>
        [Description("模块标识")]
        public string Code { get; set; }

        /// <summary>
        /// 模块标识
        /// </summary>
        [Description("模块标识")]
        public string Encode { get; set; }

        /// <summary>
        /// 是否系统模块ModuleTypeId
        /// </summary>
        [Description("是否系统模块")]
        public bool IsSys { get; set; }

        /// <summary>
        /// 菜单类型Id
        /// </summary>
        [Description("菜单类型Id")]
        public string ModuleTypeId { get; set; }

        [Navigate(NavigateType.OneToMany, nameof(SysModuleElement.ModuleId))]
        public List<SysModuleElement> Elements { get; set; }

    }
}