package com.auth.dao.base.entity;

import com.auth.common.model.common.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

@Getter
@Setter
@Accessors(chain = true)
@TableName("sys_menu")
@Schema(name = "Menu-系统菜单权限实体类", title = "系统菜单权限", description = "系统菜单权限的实体类对象")
public class MenuEntity extends BaseEntity {

    @Schema(name = "parentId", title = "父菜单ID(0表示一级菜单)")
    private Long parentId;

    @Schema(name = "menuPath", title = "路由路径(唯一)")
    private String menuPath;

    @Schema(name = "menuName", title = "菜单名称(唯一)")
    private String menuName;

    @Schema(name = "menuTitle", title = "菜单标题(显示用)")
    private String menuTitle;

    @Schema(name = "component", title = "组件路径")
    private String component;

    @Schema(name = "redirect", title = "重定向路径")
    private String redirect;

    @Schema(name = "menuType", title = "菜单类型(1=目录,2=菜单,3=按钮)")
    private Integer menuType;

    @Schema(name = "icon", title = "菜单图标")
    private String icon;

    @Schema(name = "orderNum", title = "显示顺序")
    private Integer orderNum;

    @Schema(name = "isExternal", title = "是否外链(0=否,1=是)")
    private Boolean isExternal;

    @Schema(name = "isCache", title = "是否缓存(0=否,1=是)")
    private Boolean isCache;

    @Schema(name = "isVisible", title = "是否显示(0=否,1=是)")
    private Boolean isVisible;

    @Schema(name = "permission", title = "权限标识")
    private String permission;

    @Schema(name = "status", title = "状态(0=禁用,1=启用)")
    private Integer status;

    @Schema(name = "meta", title = "路由元数据")
    private Object meta;

    @Schema(name = "remark", title = "备注信息")
    private String remark;

    @Schema(name = "isDeleted", title = "逻辑删除(0=未删除,1=已删除)")
    private Boolean isDeleted;

}