package com.agileboot.system.menu.entity;

import com.agileboot.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serial;

/**
 * <p>
 * 菜单权限表
 * </p>
 *
 * @author valarchie
 * @since 2023-07-21
 */
@Getter
@Setter
@TableName("sys_menu")
@ApiModel(value = "SysMenuEntity对象", description = "菜单权限表")
public class SysMenu extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;


    @ApiModelProperty("菜单ID")
    @TableId(value = "menu_id", type = IdType.AUTO)
    private Long menuId;

    @ApiModelProperty("菜单名称")
    private String menuName;

    @ApiModelProperty("菜单的类型(1为普通菜单2为目录3为iFrame4为外部网站)")
    private Integer menuType;

    @ApiModelProperty("路由名称（需保持和前端对应的vue文件中的name保持一致defineOptions方法中设置的name）")
    private String routerName;

    @ApiModelProperty("父菜单ID")
    private Long parentId;

    @ApiModelProperty("组件路径（对应前端项目view文件夹中的路径）")
    private String path;

    @ApiModelProperty("是否按钮")
    private Boolean isButton;

    @ApiModelProperty("权限标识")
    private String permission;

    @ApiModelProperty("路由元信息（前端根据这个信息进行逻辑处理）")
    private String metaInfo;

    @ApiModelProperty("菜单状态（1启用 0停用）")
    private Integer status;

    @ApiModelProperty("备注")
    private String remark;

}
