namespace SolutionErp.Domain.Identity;

public class MenuItem
{
    public string Key { get; set; } = string.Empty;           // PK, PascalCase
    public string Label { get; set; } = string.Empty;         // Tiếng Việt display (label gốc — admin sidebar luôn dùng)
    public string? ParentKey { get; set; }                    // NULL nếu root
    public int Order { get; set; }
    public string? Icon { get; set; }                         // lucide-react icon name

    // Session 20 Mig 27 — admin có thể custom hiển thị menu cho fe-user (eOffice):
    //   IsVisible = false  → ẩn khỏi response /menus/me FE-user, fe-admin vẫn thấy
    //   DisplayLabel = "X" → fe-user render "X" thay Label gốc, fe-admin giữ Label
    // Admin null/true mặc định cho menu mới seed.
    public bool IsVisible { get; set; } = true;
    public string? DisplayLabel { get; set; }                 // override label fe-user, null = dùng Label gốc

    public MenuItem? Parent { get; set; }
    public List<MenuItem> Children { get; set; } = new();
    public List<Permission> Permissions { get; set; } = new();
}
