content: package org.ruoyi.system.domain.bo;
  
  import com.fasterxml.jackson.annotation.JsonInclude;
  import io.github.linpeilie.annotations.AutoMapper;
  import jakarta.validation.constraints.NotBlank;
  import jakarta.validation.constraints.NotNull;
  import jakarta.validation.constraints.Size;
  import lombok.Data;
  import lombok.EqualsAndHashCode;
  import org.ruoyi.common.core.validate.AddGroup;
  import org.ruoyi.common.core.validate.EditGroup;
  import org.ruoyi.core.domain.BaseEntity;
  import org.ruoyi.system.domain.SysMenu;
  
  /**
   * 菜单权限业务对象 sys_menu
   *
   * @author Michelle.Chung
   */
  
  @Data
  @EqualsAndHashCode(callSuper = true)
  @AutoMapper(target = SysMenu.class, reverseConvertGenerate = false)
  public class SysMenuBo extends BaseEntity {
  
      /**
       * 菜单ID
       */
      @NotNull(message = "菜单ID不能为空", groups = { EditGroup.class })
      private Long menuId;
  
      /**
       * 父菜单ID
       */
      private Long parentId;
  
      /**
       * 菜单名称
       */
      @NotBlank(message = "菜单名称不能为空", groups = { AddGroup.class, EditGroup.class })
      @Size(min = 0, max = 50, message = "菜单名称长度不能超过{max}个字符")
      private String menuName;
  
      /**
       * 显示顺序
       */
      @NotNull(message = "显示顺序不能为空", groups = { AddGroup.class, EditGroup.class })
      private Integer orderNum;
  
      /**
       * 路由地址
       */
      @Size(min = 0, max = 200, message = "路由地址不能超过{max}个字符")
      private String path;
  
      /**
       * 组件路径
       */
      @Size(min = 0, max = 200, message = "组件路径不能超过{max}个字符")
      private String component;
  
      /**
       * 路由参数
       */
      private String queryParam;
  
      /**
       * 是否为外链（0是 1否）
       */
      private String isFrame;
  
      /**
       * 是否缓存（0缓存 1不缓存）
       */
      private String isCache;
  
      /**
       * 菜单类型（M目录 C菜单 F按钮）
       */
      @NotBlank(message = "菜单类型不能为空", groups = { AddGroup.class, EditGroup.class })
      private String menuType;
  
      /**
       * 显示状态（0显示 1隐藏）
       */
      private String visible;
  
      /**
       * 菜单状态（0正常 1停用）
       */
      private String status;
  
      /**
       * 权限标识
       */
      @JsonInclude(JsonInclude.Include.NON_NULL)
      @Size(min = 0, max = 100, message = "权限标识长度不能超过{max}个字符")
      private String perms;
  
      /**
       * 菜单图标
       */
      private String icon;
  
      /**
       * 备注
       */
      private String remark;
  
  
  }
  