using Lada.Framework.Data.Domains.BaseEntities;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

namespace Lada.Framework.Data.Domains.Categories
{

    public class Menu : BaseEntityWithKey<int>
    {
        [MaxLength(512)]
        public string Label { get; set; }
        public MenuType Kind { get; set; }

        [MaxLength(1024)]
        public string Url { get; set; }
        [MaxLength(512)]
        public string IconClass { get; set; }

        public int ParentId { get; set; }

        public MenuStatus Status { get; set; }

        [MaxLength(512)]
        public string AllowRoles { get; set; }

        /// <summary>
        /// Loại ứng dụng => sẽ cập nhật cho là động
        /// </summary>
        public AppType AppType { get; set; }

        public int DisplayOrder { get; set; }


        public int MenuLevel { get; set; }
    }

    public enum MenuType
    {
        [Description("Nhóm")]
        Group = 1,
        [Description("Có menu con")]
        HasChild = 2,
        [Description("Menu độc lập")]
        Single = 3,
    }

    public enum MenuStatus
    {
        [Description("Kích hoạt")]
        Active = 1,
        [Description("Tạm dừng")]
        InActive = 2,
    }

    public enum AppType
    {
        [Description("Hệ thống quản trị nội bộ")]
        Admin = 1,
        [Description("Hệ thống khách hàng")]
        Customer = 8,
        [Description("Hệ thống đào tạo")]
        Learning = 2,
        [Description("Hệ thống quản lý tài khoản")]
        User = 3
    }
}
