package cn.timer.api.bean.zzgl;

import java.util.Date;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
* @author Tang 2020-05-22
*/

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("菜单权限表")
public class ZzglMenu extends Model<ZzglMenu> {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue
    @TableId (type = IdType.AUTO)
	@ApiModelProperty(value="菜单ID",example="101")
    private Integer menuId;
    
	@NotBlank(message = "菜单名称不能为空")
    @Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符")
	@ApiModelProperty(value="菜单名称 ",example="菜单名称")
    private String menuName;
    
	@ApiModelProperty(value="父菜单ID",example="7777")
	@NotNull(message = "父菜单ID不能为空")
    private Integer parentId;
    
	@NotBlank(message = "显示顺序不能为空")
	@ApiModelProperty(value="显示顺序",example="1")
    private Integer orderNum;
    
	@Size(min = 0, max = 200, message = "路由地址不能超过200个字符")
	@ApiModelProperty(value="路由地址 ",example="user/ppt")
    private String path;
    
	@Size(min = 0, max = 200, message = "组件路径不能超过255个字符")
	@ApiModelProperty(value="组件路径 ",example="123456")
    private String component;
    
	@ApiModelProperty(value="是否为外链(0是 1否)",example="101")
    private Integer isFrame;
    
	@NotBlank(message = "菜单类型不能为空")
	@ApiModelProperty(value="菜单类型(M目录 C菜单 F按钮)",example="F")
    private String menuType;
    
	@ApiModelProperty(value="菜单状态(0显示 1隐藏)",example="0")
    private String visible;
    
	@Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符")
	@ApiModelProperty(value="权限标识 ",example="user:gen:code")
    private String perms;
    
	@ApiModelProperty(value="菜单图标 ",example="#")
    private String icon;
    
	@ApiModelProperty(value="创建者 ",example="创建者")
    private String createBy;
    
	@TableField(fill = FieldFill.INSERT)
	@ApiModelProperty(value="创建时间 ",example="创建时间")
    private Date createTime;
    
	@ApiModelProperty(value="更新者 ",example="更新者")
    private String updateBy;
    
	@TableField(fill = FieldFill.UPDATE)
	@ApiModelProperty(value="更新时间 ",example="更新时间")
    private Date updateTime;
    
	@ApiModelProperty(value="备注 ",example="备注")
    private String remark;
    

}