package com.iailab.module.system.api.app.dto; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.time.LocalDateTime; import java.util.List; @Schema(description = "RPC æœåŠ¡ - 应用èœå• Response DTO") @Data public class AppMenuRespDTO { @Schema(description = "èœå•ç¼–å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; @Schema(description = "èœå•å称", requiredMode = Schema.RequiredMode.REQUIRED, example = "å¹³å°") @NotBlank(message = "èœå•å称ä¸èƒ½ä¸ºç©º") @Size(max = 50, message = "èœå•å称长度ä¸èƒ½è¶…过50个å—符") private String name; @Schema(description = "æƒé™æ ‡è¯†,ä»…èœå•ç±»åž‹ä¸ºæŒ‰é’®æ—¶ï¼Œæ‰éœ€è¦ä¼ 递", example = "sys:menu:add") @Size(max = 100) private String permission; @Schema(description = "类型,å‚è§ MenuTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "èœå•ç±»åž‹ä¸èƒ½ä¸ºç©º") private Integer type; @Schema(description = "显示顺åº", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "显示顺åºä¸èƒ½ä¸ºç©º") private Integer sort; @Schema(description = "父èœå• ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "父èœå• ID ä¸èƒ½ä¸ºç©º") private Long parentId; @Schema(description = "路由地å€,ä»…èœå•ç±»åž‹ä¸ºèœå•æˆ–者目录时,æ‰éœ€è¦ä¼ ", example = "post") @Size(max = 200, message = "路由地å€ä¸èƒ½è¶…过200个å—符") private String path; @Schema(description = "èœå•å›¾æ ‡,ä»…èœå•ç±»åž‹ä¸ºèœå•æˆ–者目录时,æ‰éœ€è¦ä¼ ", example = "/menu/list") private String icon; @Schema(description = "组件路径,ä»…èœå•ç±»åž‹ä¸ºèœå•æ—¶ï¼Œæ‰éœ€è¦ä¼ ", example = "system/post/index") @Size(max = 200, message = "组件路径ä¸èƒ½è¶…过255个å—符") private String component; @Schema(description = "组件å", example = "SystemUser") private String componentName; @Schema(description = "状æ€,è§ CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状æ€ä¸èƒ½ä¸ºç©º") private Integer status; @Schema(description = "是å¦å¯è§", example = "false") private Boolean visible; @Schema(description = "是å¦ç¼“å˜", example = "false") private Boolean keepAlive; @Schema(description = "是å¦æ€»æ˜¯æ˜¾ç¤º", example = "false") private Boolean alwaysShow; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "æ—¶é—´æˆ³æ ¼å¼") private LocalDateTime createTime; /** * 应用类型(1-系统èœå•ï¼Œ 2-应用èœå•ï¼‰ */ private Integer appType; /** * å路由 */ private List<AppMenuRespDTO> children; }