/**
 *@Generated by sagacity-quickvo 5.0
 */
package cn.pojo.entity;

import java.io.Serializable;
import cn.orm.sqltoy.config.annotation.Entity;
import cn.orm.sqltoy.config.annotation.Id;
import cn.orm.sqltoy.config.annotation.Column;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * @project sqltoy-quickstart
 * @author BJTU
 * @version 1.0.0 
 */
@Schema(name="TSysMenu",description="菜单权限表")
@Data
@Accessors(chain = true)
@Entity(tableName="t_sys_menu",comment="菜单权限表",pk_constraint="PRIMARY")
public class TSysMenu implements Serializable
{
	private String perms;
	private List<TSysMenu> children = new ArrayList<TSysMenu>();
	/**
	 * 
	 */
	private static final long serialVersionUID = 7770620370111591744L;
/*---begin-auto-generate-don't-update-this-area--*/	
	/**
	 * jdbcType:INT
	 */
	@Schema(name="menuId",description="菜单ID",nullable=false)
	@Id(strategy="identity")
	@Column(name="menu_id",comment="菜单ID",length=10L,type=java.sql.Types.INTEGER,nullable=false,autoIncrement=true)
	private Integer menuId;
	
	/**
	 * jdbcType:VARCHAR
	 */
	@Schema(name="metaTitle",description="菜单名称",nullable=false)
	@Column(name="meta_title",comment="菜单名称",length=50L,type=java.sql.Types.VARCHAR,nullable=false)
	private String metaTitle;
	
	/**
	 * jdbcType:INT
	 */
	@Schema(name="parentId",description="父菜单ID",nullable=true)
	@Column(name="parent_id",comment="父菜单ID",length=10L,defaultValue="0",type=java.sql.Types.INTEGER,nullable=true)
	private Integer parentId;
	
	/**
	 * jdbcType:INT
	 */
	@Schema(name="menuSort",description="显示顺序",nullable=true)
	@Column(name="menu_sort",comment="显示顺序",length=10L,defaultValue="0",type=java.sql.Types.INTEGER,nullable=true)
	private Integer menuSort;
	
	/**
	 * jdbcType:VARCHAR
	 */
	@Schema(name="path",description="路由路径 顶级菜单路径 用于跳转",nullable=true)
	@Column(name="path",comment="路由路径 顶级菜单路径 用于跳转",length=100L,defaultValue="",type=java.sql.Types.VARCHAR,nullable=true)
	private String path;
	
	/**
	 * jdbcType:VARCHAR
	 */
	@Schema(name="component",description="组件路径 顶级路由出口.格式：system/user/index",nullable=true)
	@Column(name="component",comment="组件路径 顶级路由出口.格式：system/user/index",length=50L,type=java.sql.Types.VARCHAR,nullable=true)
	private String component;
	
	/**
	 * jdbcType:VARCHAR
	 */
	@Schema(name="name",description="路由名称",nullable=true)
	@Column(name="name",comment="路由名称",length=100L,defaultValue="",type=java.sql.Types.VARCHAR,nullable=true)
	private String name;
	
	/**
	 * jdbcType:VARCHAR
	 */
	@Schema(name="redirect",description="重定向 顶级菜单重定向路径",nullable=true)
	@Column(name="redirect",comment="重定向 顶级菜单重定向路径",length=100L,type=java.sql.Types.VARCHAR,nullable=true)
	private String redirect;
	
	/**
	 * jdbcType:VARCHAR
	 */
	@Schema(name="btnPower",description="权限标识(按钮)",nullable=true)
	@Column(name="btnPower",comment="权限标识(按钮)",length=200L,type=java.sql.Types.VARCHAR,nullable=true)
	private String btnPower;
	
	/**
	 * jdbcType:INT
	 */
	@Schema(name="isLink",description="是否外链(1 isLink:true 2 链接地址不为空)",nullable=true)
	@Column(name="is_link",comment="是否外链(1 isLink:true 2 链接地址不为空)",length=10L,type=java.sql.Types.INTEGER,nullable=true)
	private Integer isLink;
	
	/**
	 * jdbcType:INT
	 */
	@Schema(name="metaIsFrame",description="是否内嵌（0是 1否）",nullable=true)
	@Column(name="meta_is_frame",comment="是否内嵌（0是 1否）",length=10L,defaultValue="1",type=java.sql.Types.INTEGER,nullable=true)
	private Integer metaIsFrame;
	
	/**
	 * jdbcType:VARCHAR
	 */
	@Schema(name="metaIsLink",description="链接地址(1 isLink:true 2 链接地址不为空)",nullable=true)
	@Column(name="meta_is_link",comment="链接地址(1 isLink:true 2 链接地址不为空)",length=100L,type=java.sql.Types.VARCHAR,nullable=true)
	private String metaIsLink;
	
	/**
	 * jdbcType:CHAR
	 */
	@Schema(name="menuType",description="菜单类型（M目录 C菜单 F按钮）",nullable=true)
	@Column(name="menu_type",comment="菜单类型（M目录 C菜单 F按钮）",length=1L,type=java.sql.Types.CHAR,nullable=true)
	private String menuType;
	
	/**
	 * jdbcType:INT
	 */
	@Schema(name="metaIsHide",description="显示状态（0显示 1隐藏）",nullable=true)
	@Column(name="meta_is_hide",comment="显示状态（0显示 1隐藏）",length=10L,defaultValue="0",type=java.sql.Types.INTEGER,nullable=true)
	private Integer metaIsHide;
	
	/**
	 * jdbcType:INT
	 */
	@Schema(name="metaIsKeepAlive",description="是否缓存组件状态（0是 1否）",nullable=true)
	@Column(name="meta_is_keep_alive",comment="是否缓存组件状态（0是 1否）",length=10L,defaultValue="0",type=java.sql.Types.INTEGER,nullable=true)
	private Integer metaIsKeepAlive;
	
	/**
	 * jdbcType:INT
	 */
	@Schema(name="metaIsAffix",description="是否固定在 tagsView 栏上（0是 1否）",nullable=true)
	@Column(name="meta_is_affix",comment="是否固定在 tagsView 栏上（0是 1否）",length=10L,defaultValue="0",type=java.sql.Types.INTEGER,nullable=true)
	private Integer metaIsAffix;
	
	/**
	 * jdbcType:VARCHAR
	 */
	@Schema(name="metaRoles",description="权限标识(页面)",nullable=true)
	@Column(name="meta_roles",comment="权限标识(页面)",length=200L,type=java.sql.Types.VARCHAR,nullable=true)
	private String metaRoles;
	
	/**
	 * jdbcType:VARCHAR
	 */
	@Schema(name="metaIcon",description="菜单图标",nullable=true)
	@Column(name="meta_icon",comment="菜单图标",length=50L,defaultValue="#",type=java.sql.Types.VARCHAR,nullable=true)
	private String metaIcon;
	
	/**
	 * jdbcType:INT
	 */
	@Schema(name="status",description="菜单状态（0正常 1停用）",nullable=true)
	@Column(name="status",comment="菜单状态（0正常 1停用）",length=10L,defaultValue="0",type=java.sql.Types.INTEGER,nullable=true)
	private Integer status;
	
	/**
	 * jdbcType:VARCHAR
	 */
	@Schema(name="createBy",description="创建者",nullable=true)
	@Column(name="create_by",comment="创建者",length=64L,defaultValue="",type=java.sql.Types.VARCHAR,nullable=true)
	private String createBy;
	
	/**
	 * jdbcType:DATETIME
	 */
	@Schema(name="createTime",description="创建时间",nullable=true)
	@Column(name="create_time",comment="创建时间",length=19L,type=java.sql.Types.DATE,nullable=true)
	private LocalDateTime createTime;
	
	/**
	 * jdbcType:VARCHAR
	 */
	@Schema(name="updateBy",description="更新者",nullable=true)
	@Column(name="update_by",comment="更新者",length=64L,defaultValue="",type=java.sql.Types.VARCHAR,nullable=true)
	private String updateBy;
	
	/**
	 * jdbcType:DATETIME
	 */
	@Schema(name="updateTime",description="更新时间",nullable=true)
	@Column(name="update_time",comment="更新时间",length=19L,type=java.sql.Types.DATE,nullable=true)
	private LocalDateTime updateTime;
	
	/**
	 * jdbcType:VARCHAR
	 */
	@Schema(name="remark",description="备注",nullable=true)
	@Column(name="remark",comment="备注",length=100L,defaultValue="",type=java.sql.Types.VARCHAR,nullable=true)
	private String remark;
	
	/** default constructor */
	public TSysMenu() {
	}
	
	/** pk constructor */
	public TSysMenu(Integer menuId)
	{
		this.menuId=menuId;
	}
/*---end-auto-generate-don't-update-this-area--*/
}
