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.List;
import java.util.Map;

/**
 * 动态表格条件对象 drag_table_condition
 *
 * @author ruoyi
 * @date 2023-07-31
 */
public class DragTableCondition extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    private Long tcId;

    /**
     * 动态表格编号
     */
    @Excel(name = "动态表格编号")
    private Long tId;

    /**
     * 条件名称
     */
    @Excel(name = "条件名称")
    private String conditionName;

    /**
     * 条件字段
     */
    @Excel(name = "条件字段")
    private String conditionField;

    /**
     * 条件描述
     */
    @Excel(name = "条件描述")
    private String conditionNotes;

    /**
     * 条件类型
     */
    @Excel(name = "条件类型")
    private String conditionType;

    /**
     * 默认值
     */
    @Excel(name = "默认值")
    private String conditionDefaultValue;

    /**
     * 排序
     */
    @Excel(name = "排序")
    private Long sort;

    /**
     * 表名称（下拉框关联）
     */
    @Excel(name = "表名称", readConverterExp = "下=拉框关联")
    private String conditionTableName;

    /**
     * 表字段名称（下拉框关联）/ 字典类型
     */
    @Excel(name = "表字段名称", readConverterExp = "下=拉框关联")
    private String conditionTableFieldName;

    /**
     * 表字段key（下拉框关联）/ 唯一标识
     */
    @Excel(name = "表字段key", readConverterExp = "下=拉框关联")
    private String conditionTableFieldKey;

    /**
     * 数据来源（0：字典；1：表字段）
     */
    @Excel(name = "数据来源", readConverterExp = "0=：字典；1：表字段")
    private String conditionDatasource;

    /**
     * 组件类型（时间组件、btn等type类型参照element官方api中的类型 ）
     */
    @Excel(name = "组件类型", readConverterExp = "时=间组件、btn等type类型参照element官方api中的类型")
    private String componentType;

    /**
     * 组件大小
     */
    @Excel(name = "组件大小")
    private String componentSize;

    /**
     * 组件图标
     */
    @Excel(name = "组件图标")
    private String componentIcon;

    /**
     * 是否隐藏(0 显示; 1 隐藏)
     */
    @Excel(name = "是否隐藏(0 显示; 1 隐藏)")
    private String isHidden;

    /**
     * 逻辑删除(0 否; 1 是)
     */
    private String delFlag;

    /**
     * 下拉框列表
     */
    List<Map<String, Object>> dropDownList;

    public DragTableCondition() {
    }

    public DragTableCondition(Long tId, String conditionField) {
        this.tId = tId;
        this.conditionField = conditionField;
    }

    public DragTableCondition(Long tcId, Long tId, String conditionName, String conditionField, String conditionNotes, String conditionType, String conditionDefaultValue, Long sort, String conditionTableName, String conditionTableFieldName, String conditionTableFieldKey, String conditionDatasource, String componentType, String componentSize, String componentIcon, String isHidden, String delFlag, List<Map<String, Object>> dropDownList) {
        this.tcId = tcId;
        this.tId = tId;
        this.conditionName = conditionName;
        this.conditionField = conditionField;
        this.conditionNotes = conditionNotes;
        this.conditionType = conditionType;
        this.conditionDefaultValue = conditionDefaultValue;
        this.sort = sort;
        this.conditionTableName = conditionTableName;
        this.conditionTableFieldName = conditionTableFieldName;
        this.conditionTableFieldKey = conditionTableFieldKey;
        this.conditionDatasource = conditionDatasource;
        this.componentType = componentType;
        this.componentSize = componentSize;
        this.componentIcon = componentIcon;
        this.isHidden = isHidden;
        this.delFlag = delFlag;
        this.dropDownList = dropDownList;
    }

    public void setTcId(Long tcId) {
        this.tcId = tcId;
    }

    public Long getTcId() {
        return tcId;
    }

    public void settId(Long tId) {
        this.tId = tId;
    }

    public Long gettId() {
        return tId;
    }

    public void setConditionName(String conditionName) {
        this.conditionName = conditionName;
    }

    public String getConditionName() {
        return conditionName;
    }

    public void setConditionField(String conditionField) {
        this.conditionField = conditionField;
    }

    public String getConditionField() {
        return conditionField;
    }

    public void setConditionNotes(String conditionNotes) {
        this.conditionNotes = conditionNotes;
    }

    public String getConditionNotes() {
        return conditionNotes;
    }

    public void setConditionType(String conditionType) {
        this.conditionType = conditionType;
    }

    public String getConditionType() {
        return conditionType;
    }

    public void setConditionDefaultValue(String conditionDefaultValue) {
        this.conditionDefaultValue = conditionDefaultValue;
    }

    public String getConditionDefaultValue() {
        return conditionDefaultValue;
    }

    public void setSort(Long sort) {
        this.sort = sort;
    }

    public Long getSort() {
        return sort;
    }

    public void setConditionTableName(String conditionTableName) {
        this.conditionTableName = conditionTableName;
    }

    public String getConditionTableName() {
        return conditionTableName;
    }

    public void setConditionTableFieldName(String conditionTableFieldName) {
        this.conditionTableFieldName = conditionTableFieldName;
    }

    public String getConditionTableFieldName() {
        return conditionTableFieldName;
    }

    public void setConditionDatasource(String conditionDatasource) {
        this.conditionDatasource = conditionDatasource;
    }

    public String getConditionTableFieldKey() {
        return conditionTableFieldKey;
    }

    public void setConditionTableFieldKey(String conditionTableFieldKey) {
        this.conditionTableFieldKey = conditionTableFieldKey;
    }

    public String getConditionDatasource() {
        return conditionDatasource;
    }

    public void setComponentType(String componentType) {
        this.componentType = componentType;
    }

    public String getComponentType() {
        return componentType;
    }

    public void setComponentSize(String componentSize) {
        this.componentSize = componentSize;
    }

    public String getComponentSize() {
        return componentSize;
    }

    public void setComponentIcon(String componentIcon) {
        this.componentIcon = componentIcon;
    }

    public String getComponentIcon() {
        return componentIcon;
    }

    public void setIsHidden(String isHidden) {
        this.isHidden = isHidden;
    }

    public String getIsHidden() {
        return isHidden;
    }

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

    public String getDelFlag() {
        return delFlag;
    }

    public List<Map<String, Object>> getDropDownList() {
        return dropDownList;
    }

    public void setDropDownList(List<Map<String, Object>> dropDownList) {
        this.dropDownList = dropDownList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("tcId", getTcId())
                .append("tId", gettId())
                .append("conditionName", getConditionName())
                .append("conditionField", getConditionField())
                .append("conditionNotes", getConditionNotes())
                .append("conditionType", getConditionType())
                .append("conditionDefaultValue", getConditionDefaultValue())
                .append("sort", getSort())
                .append("conditionTableName", getConditionTableName())
                .append("conditionTableFieldName", getConditionTableFieldName())
                .append("conditionTableFieldKey", getConditionTableFieldKey())
                .append("conditionDatasource", getConditionDatasource())
                .append("componentType", getComponentType())
                .append("componentSize", getComponentSize())
                .append("componentIcon", getComponentIcon())
                .append("isHidden", getIsHidden())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("dropDownList", getDropDownList())
                .toString();
    }
}
