package com.lantone.security.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 菜单功能VO
 * </p>
 */
@Data
@ApiModel(value="MenuVO对象", description="菜单功能VO")
public class UpdateMenuVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "编号",required = true)
    @NotNull(message = "编号为空")
    private Long id;

    @ApiModelProperty(value = "父级编号",required = true)
    @NotNull(message = "父级编号为空")
    private Long parentId;

    @ApiModelProperty(value = "服务id列表",required = true)
    @NotEmpty(message = "服务id列表为空")
    private List<Long> softwares;

    @ApiModelProperty(value = "功能名称",required = true)
    private String name;

    @ApiModelProperty(value = "权限路由")
    private List<String> permissions;

    @ApiModelProperty(value = "类型：0:目录，1菜单，2按钮，3：功能",required = true)
    @NotBlank(message = "类型为空")
    private String type;

    @ApiModelProperty(value = "权限标识",required = true)
    @NotBlank(message = "权限标识为空")
    private String code;

    @ApiModelProperty(value = "图标")
    private String icon;

    @ApiModelProperty(value = "排序")
    private String orderNo;

    @ApiModelProperty(value = "状态 0:禁用，1：启用",required = true)
    @NotBlank(message = "状态为空")
    private String status;

    @ApiModelProperty(value = "描述")
    private String menuDescribe;

    @ApiModelProperty(value = "记录创建时间",hidden = true)
    private Date gmtCreate;

    @ApiModelProperty(value = "创建人，0表示无创建人值",hidden = true)
    private String creator;

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

}
