using System;
using System.ComponentModel.DataAnnotations.Schema;
using Znyc.Admin.Commons.Entitys;

namespace Znyc.Admin.Security.Entitys
{
    /// <summary>
    /// 系统菜单,数据实体对象
    /// </summary>
    [Table("sys_menu")]
    [Serializable]
    public class Menu : BaseEntity
    {
        /// <summary>
        /// 默认构造函数(需要初始化属性的在此处理)
        /// </summary>
        public Menu()
        {
        }

        /// <summary>
        /// 所属系统主键
        /// </summary>
        public long SystemTypeId { get; set; }

        /// <summary>
        /// 父级
        /// </summary>
        public long ParentId { get; set; }

        /// <summary>
        /// 层次
        /// </summary>
        public int Layers { get; set; }

        /// <summary>
        /// 编码
        /// </summary>
        public string EnCode { get; set; }

        /// <summary>
        /// 名称
        /// </summary>
        public string FullName { get; set; }

        /// <summary>
        /// 图标
        /// </summary>
        public string Icon { get; set; }

        /// <summary>
        /// 路由
        /// </summary>
        public string UrlAddress { get; set; }

        /// <summary>
        /// 目标打开方式
        /// </summary>
        public string Target { get; set; }

        /// <summary>
        /// 菜单类型(C目录 M菜单 F按钮)
        /// </summary>
        public string MenuType { get; set; }

        /// <summary>
        /// 组件路径
        /// </summary>
        public string Component { get; set; }

        /// <summary>
        /// 设置当前选中菜单,用于新增、编辑、查看操作为单独的路由时指定选中菜单路由
        /// 同时设置为隐藏时才有效
        /// </summary>
        public string ActiveMenu { get; set; }

        /// <summary>
        /// 展开
        /// </summary>
        public bool IsExpand { get; set; }

        /// <summary>
        /// 设置或获取 是否显示
        /// </summary>
        public bool IsShow { get; set; }

        /// <summary>
        /// 设置或获取 是否外链
        /// </summary>
        public bool IsFrame { get; set; }

        /// <summary>
        /// 设置或获取是否缓存
        /// </summary>
        public bool IsCache { get; set; }

        /// <summary>
        /// 公共
        /// </summary>
        public bool IsPublic { get; set; }

        /// <summary>
        /// 排序码
        /// </summary>
        public int SortCode { get; set; }

        /// <summary>
        /// 描述
        /// </summary>
        public string Description { get; set; }

        /// <summary>
        /// 有效标志
        /// </summary>
        public bool IsEnabled { get; set; }
    }
}