package com.jy.system.model.table;

import com.jy.framework.mybatis.join.QueryColumn;
import com.jy.framework.mybatis.join.Table;
import com.jy.system.model.entity.SysMenu;

public class SysMenuTable extends Table<SysMenu> {

    public static SysMenuTable sys_menu = new SysMenuTable();
    public static SysMenuTable sm = sys_menu.as("sm");

    /**
     * 菜单id
     */
    public QueryColumn id = this.field(SysMenu::getId);

    /**
     * 父菜单id
     */
    public QueryColumn parentId = this.field(SysMenu::getParentId);

    /**
     * 类型 1目录 2菜单 3按钮
     */
    public QueryColumn type = this.field(SysMenu::getType);

    /**
     * 标题
     */
    public QueryColumn title = this.field(SysMenu::getTitle);

    /**
     * 路由名称
     */
    public QueryColumn name = this.field(SysMenu::getName);

    /**
     * 组件路径
     */
    public QueryColumn path = this.field(SysMenu::getPath);

    /**
     * 高亮菜单
     */
    public QueryColumn activeMenu = this.field(SysMenu::getActiveMenu);

    /**
     * 是否隐藏 1是 0否
     */
    public QueryColumn isHide = this.field(SysMenu::getIsHide);

    /**
     * 是否缓存 1是 0否
     */
    public QueryColumn isKeepAlive = this.field(SysMenu::getIsKeepAlive);

    /**
     * 是否外链 1是 0否
     */
    public QueryColumn isLink = this.field(SysMenu::getIsLink);

    /**
     * 是否全屏 1是 0否
     */
    public QueryColumn isFull = this.field(SysMenu::getIsFull);

    /**
     * 状态 1启用 0禁用
     */
    public QueryColumn status = this.field(SysMenu::getStatus);

    /**
     * 显示顺序
     */
    public QueryColumn sort = this.field(SysMenu::getSort);

    /**
     * 权限标识
     */
    public QueryColumn perms = this.field(SysMenu::getPerms);

    /**
     * 菜单图标
     */
    public QueryColumn icon = this.field(SysMenu::getIcon);

    /**
     * 创建人
     */
    public QueryColumn createUser = this.field(SysMenu::getCreateUser);

    /**
     * 创建时间
     */
    public QueryColumn createTime = this.field(SysMenu::getCreateTime);

    /**
     * 更新人
     */
    public QueryColumn updateUser = this.field(SysMenu::getUpdateUser);

    /**
     * 更新时间
     */
    public QueryColumn updateTime = this.field(SysMenu::getUpdateTime);

    /**
     * 逻辑删除标记
     */
    public QueryColumn delFlag = this.field(SysMenu::getDelFlag);

    private SysMenuTable() {
        super(SysMenu.class);
    }

    private SysMenuTable(String alias) {
        super(SysMenu.class, alias);
    }

    public SysMenuTable as(String alias) {
        return new SysMenuTable(alias);
    }

}
