using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;

namespace IRaCIS.Core.Domain.Models
{
    [Table("Menu")]
    public class Menu : Entity, IAuditUpdate, IAuditAdd
    {
        [JsonIgnore]
        public List<UserTypeMenu> UserTypeMenuList { get; set; }


        //上级菜单
        public Guid? ParentId { get; set; } = Guid.Empty;

        // 类型（M目录 C菜单 F按钮 L链接）
        public string MenuType { get; set; } = string.Empty;

        public string MenuIcon { get; set; }

        public string MenuName { get; set; } = string.Empty;

        //路由地址
        public string Path { get; set; } = string.Empty;

        //组件路径
        public string Component { get; set; } = string.Empty;

        public int ShowOrder { get; set; }

        //启用 禁用
        public bool IsEnable { get; set; } = true;

        public bool IsCache { get; set; } = false;

        public bool IsDisplay { get; set; }

        public bool IsInTabDisplay { get; set; }

        public bool IsExternalLink { get; set; }

        //权限点
        public string PermissionStr { get; set; }

        //Api 接口地址
        public string ApiPath { get; set; }

        public string Note { get; set; } = string.Empty;

        public string Meta { get; set; } = string.Empty;

        public string Redirect { get; set; } = string.Empty; 


        public string LanguageMark { get; set; }

        public DateTime CreateTime { get; set; } = DateTime.Now;
        public Guid CreateUserId { get; set; } = Guid.Empty;
        public DateTime UpdateTime { get; set; } = DateTime.Now;
        public Guid UpdateUserId { get; set; } = Guid.Empty;

    }
}
