package com.ruoyi.system.entity;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.ArrayList;
import java.util.List;

/**
 * 格绑定的自定义按钮对象 drag_table_btn
 * 
 * @author ruoyi
 * @date 2023-11-07
 */
public class DragTableBtn extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 父级ID */
    private Long btnParentId;

    /** 祖籍列表 */
    private String ancestorsId;

    /** 按钮别名 */
    private String btnKey;

    /** 按钮组名称 */
    private String btnGroupName;

    /** 按钮名称 */
    private String btnName;

    /** 按钮类型（0:操作按钮，1，其他，2表单，3跳转，4流程，5脚本，6目录） */
    private String btnType;

    /** 按钮图标 */
    private String btnIcon;

    /** 表单唯一标识 */
    private String btnFormKey;

    /** 流程唯一标识 */
    private String btnProcessKey;

    /** 表格唯一标识 */
    private String btnTableKey;

    /** 脚本唯一标识 */
    private String btnScriptKey;

    /** 脚本唯一标识 */
    private String btnTableFormGroupKey;

    /** 按钮显示条件 */
    private String btnShowCondition;

    /** 操作参数 */
    private String btnParams;

    /** 权限字符 */
    private String btnHasPermi;

    /** 按钮顺序 */
    private Long btnSort;

    /** 删除标志（0：否；1：是） */
    private String delFlag;

    /** 创建者ID */
    private Long createById;

    /** 更新者ID */
    private Long updateById;

    // 按钮是否被绑定
    private Boolean whetherBind = false;

    /** 子菜单 */
    private List<DragTableBtn> children = new ArrayList<DragTableBtn>();

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getBtnParentId() {
        return btnParentId;
    }

    public void setBtnParentId(Long btnParentId) {
        this.btnParentId = btnParentId;
    }

    public String getAncestorsId() {
        return ancestorsId;
    }

    public void setAncestorsId(String ancestorsId) {
        this.ancestorsId = ancestorsId;
    }

    public String getBtnKey() {
        return btnKey;
    }

    public void setBtnKey(String btnKey) {
        this.btnKey = btnKey;
    }

    public String getBtnGroupName() {
        return btnGroupName;
    }

    public void setBtnGroupName(String btnGroupName) {
        this.btnGroupName = btnGroupName;
    }

    public String getBtnName() {
        return btnName;
    }

    public void setBtnName(String btnName) {
        this.btnName = btnName;
    }

    public String getBtnType() {
        return btnType;
    }

    public void setBtnType(String btnType) {
        this.btnType = btnType;
    }

    public String getBtnFormKey() {
        return btnFormKey;
    }

    public void setBtnFormKey(String btnFormKey) {
        this.btnFormKey = btnFormKey;
    }

    public String getBtnProcessKey() {
        return btnProcessKey;
    }

    public void setBtnProcessKey(String btnProcessKey) {
        this.btnProcessKey = btnProcessKey;
    }

    public String getBtnTableKey() {
        return btnTableKey;
    }

    public void setBtnTableKey(String btnTableKey) {
        this.btnTableKey = btnTableKey;
    }

    public String getBtnScriptKey() {
        return btnScriptKey;
    }

    public void setBtnScriptKey(String btnScriptKey) {
        this.btnScriptKey = btnScriptKey;
    }

    public String getBtnShowCondition() {
        return btnShowCondition;
    }

    public void setBtnShowCondition(String btnShowCondition) {
        this.btnShowCondition = btnShowCondition;
    }

    public String getBtnParams() {
        return btnParams;
    }

    public void setBtnParams(String btnParams) {
        this.btnParams = btnParams;
    }

    public String getBtnHasPermi() {
        return btnHasPermi;
    }

    public void setBtnHasPermi(String btnHasPermi) {
        this.btnHasPermi = btnHasPermi;
    }

    public Long getBtnSort() {
        return btnSort;
    }

    public void setBtnSort(Long btnSort) {
        this.btnSort = btnSort;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    @Override
    public Long getCreateById() {
        return createById;
    }

    @Override
    public void setCreateById(Long createById) {
        this.createById = createById;
    }

    @Override
    public Long getUpdateById() {
        return updateById;
    }

    @Override
    public void setUpdateById(Long updateById) {
        this.updateById = updateById;
    }

    public List<DragTableBtn> getChildren() {
        return children;
    }

    public void setChildren(List<DragTableBtn> children) {
        this.children = children;
    }

    public String getBtnIcon() {
        return btnIcon;
    }

    public void setBtnIcon(String btnIcon) {
        this.btnIcon = btnIcon;
    }

    public String getBtnTableFormGroupKey() {
        return btnTableFormGroupKey;
    }

    public void setBtnTableFormGroupKey(String btnTableFormGroupKey) {
        this.btnTableFormGroupKey = btnTableFormGroupKey;
    }

    public Boolean getWhetherBind() {
        return whetherBind;
    }

    public void setWhetherBind(Boolean whetherBind) {
        this.whetherBind = whetherBind;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("btnParentId", getBtnParentId())
            .append("ancestorsId",getAncestorsId())
            .append("btnKey", getBtnKey())
            .append("btnName", getBtnName())
            .append("btnType", getBtnType())
            .append("btnFormKey", getBtnFormKey())
            .append("btnProcessKey", getBtnProcessKey())
            .append("btnTableKey", getBtnTableKey())
            .append("btnScriptKey", getBtnScriptKey())
            .append("btnTableFormGroupKey", getBtnTableFormGroupKey())
            .append("btnShowCondition", getBtnShowCondition())
            .append("btnParams", getBtnParams())
            .append("btnHasPermi", getBtnHasPermi())
            .append("btnSort", getBtnSort())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createById", getCreateById())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateById", getUpdateById())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("children",getChildren())
            .append("btnGroupName",getBtnGroupName())
            .append("btnIcon",getBtnIcon())
            .toString();
    }
}
