using Lada.Framework.Data.Domains.Categories;
using Lada.Framework.DTO;

namespace Ladaer.BackEnd.Infrastructures.DTO.Items.Categories
{
    /// <summary>
    /// Đối tượng đại diện cho mục menu.
    /// </summary>
    public class MenuItem : BaseItem<int>
    {
        /// <summary>
        /// Nhãn của mục menu.
        /// </summary>
        public string Label { get; set; }

        /// <summary>
        /// Loại của mục menu.
        /// </summary>
        public string Kind { get; set; }

        /// <summary>
        /// URL của mục menu.
        /// </summary>
        public string Url { get; set; }

        /// <summary>
        /// Lớp biểu tượng của mục menu.
        /// </summary>
        public string IconClass { get; set; }

        /// <summary>
        /// Id của mục menu cha.
        /// </summary>
        public int ParentId { get; set; }

        /// <summary>
        /// Tên của mục menu cha.
        /// </summary>
        public string ParentName { get; set; }

        /// <summary>
        /// Trạng thái của mục menu.
        /// </summary>
        public MenuStatus Status { get; set; }

        /// <summary>
        /// Chuỗi trạng thái của mục menu.
        /// </summary>
        public string StatusStr { get; set; }

        /// <summary>
        /// Các vai trò được phép truy cập mục menu.
        /// </summary>
        public string AllowRoles { get; set; }

        /// <summary>
        /// Tên ứng dụng của mục menu.
        /// </summary>
        public string AppName { get; set; }

        /// <summary>
        /// Thứ tự hiển thị của mục menu.
        /// </summary>
        public int DisplayOrder { get; set; }

        /// <summary>
        /// Cấp độ của mục menu.
        /// </summary>
        public int MenuLevel { get; set; }

        /// <summary>
        /// Thời gian tạo mục menu.
        /// </summary>
        public string CreatedTime { get; set; }

        /// <summary>
        /// Thời gian cập nhật mục menu.
        /// </summary>
        public string UpdatedTime { get; set; }

        /// <summary>
        /// Người tạo mục menu.
        /// </summary>
        public string CreatedBy { get; set; }

        /// <summary>
        /// Người cập nhật mục menu.
        /// </summary>
        public string UpdatedBy { get; set; }
    }
}
