package cn.nianxx.thhotel.platform.navigation.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;

/**
 * 平台菜单实体。菜单可见性只控制入口，不替代后端接口权限校验。
 */
@TableName("platform_menu")
public class PlatformMenuEntity {

    /** 菜单内部 ID。 */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /** 父菜单 ID，根菜单为空。 */
    private Long parentId;
    /** 稳定菜单代码。 */
    private String menuCode;
    /** 菜单展示名称。 */
    private String menuName;
    /** 菜单类型：GROUP、PAGE、ACTION。 */
    private String menuType;
    /** 前端路由路径。 */
    private String routePath;
    /** 前端组件标识，第一版可为空。 */
    private String componentKey;
    /** 前端图标标识，第一版兼容 PrimeIcons class。 */
    private String iconKey;
    /** 访问该菜单需要的权限码，可为空。 */
    private String permissionCode;
    /** 菜单排序号。 */
    private Integer sortOrder;
    /** 是否作为菜单入口可见。 */
    private Boolean visible;
    /** 菜单状态：ACTIVE、DISABLED。 */
    private String menuStatus;
    /** 记录创建 UTC 时间。 */
    private LocalDateTime createdAt;
    /** 记录更新 UTC 时间。 */
    private LocalDateTime updatedAt;

    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
    public Long getParentId() { return parentId; }
    public void setParentId(Long parentId) { this.parentId = parentId; }
    public String getMenuCode() { return menuCode; }
    public void setMenuCode(String menuCode) { this.menuCode = menuCode; }
    public String getMenuName() { return menuName; }
    public void setMenuName(String menuName) { this.menuName = menuName; }
    public String getMenuType() { return menuType; }
    public void setMenuType(String menuType) { this.menuType = menuType; }
    public String getRoutePath() { return routePath; }
    public void setRoutePath(String routePath) { this.routePath = routePath; }
    public String getComponentKey() { return componentKey; }
    public void setComponentKey(String componentKey) { this.componentKey = componentKey; }
    public String getIconKey() { return iconKey; }
    public void setIconKey(String iconKey) { this.iconKey = iconKey; }
    public String getPermissionCode() { return permissionCode; }
    public void setPermissionCode(String permissionCode) { this.permissionCode = permissionCode; }
    public Integer getSortOrder() { return sortOrder; }
    public void setSortOrder(Integer sortOrder) { this.sortOrder = sortOrder; }
    public Boolean getVisible() { return visible; }
    public void setVisible(Boolean visible) { this.visible = visible; }
    public String getMenuStatus() { return menuStatus; }
    public void setMenuStatus(String menuStatus) { this.menuStatus = menuStatus; }
    public LocalDateTime getCreatedAt() { return createdAt; }
    public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; }
    public LocalDateTime getUpdatedAt() { return updatedAt; }
    public void setUpdatedAt(LocalDateTime updatedAt) { this.updatedAt = updatedAt; }
}
