package com.izouma.awesomeadmin.model;


import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonInclude;

/**
 * table_field 实体类
 * Fri May 04 13:38:24 CST 2018  Suo Chen Cheng
 */
@JsonAutoDetect
@JsonInclude(JsonInclude.Include.NON_NULL)
public class TableField {

    /**
     * id
     */
    private Integer id;

    /**
     * 字段名
     */
    private String name;

    /**
     * 驼峰式名字
     */
    private String modelName;

    /**
     * 备注
     */
    private String remark;

    /**
     * 数据类型(数据库)
     */
    private String jdbcType;

    /**
     * java类型
     */
    private String javaType;

    /**
     * 长度
     */
    private Integer length;

    /**
     * 小数长度
     */
    private Integer decimalPlaces;

    /**
     * 默认值
     */
    private String defaultValue;

    /**
     * 非空
     */
    private Boolean notNull;

    /**
     * 主键
     */
    private Boolean primaryKey;

    /**
     * 自增
     */
    private Boolean autoIncrease;

    /**
     * 在列表中显示
     */
    private Boolean showInList;

    /**
     * 在表单中显示
     */
    private Boolean showInForm;

    /**
     * 可以搜索
     */
    private Boolean searchable;

    /**
     * 可以排序
     */
    private Boolean sortable;

    /**
     * 表单类型
     */
    private String formType;

    /**
     * 搜索方式
     */
    private String searchMethod;

    /**
     * 表单必填
     */
    private Boolean required;

    /**
     * 表单验证
     */
    private Boolean validate;

    /**
     * 最短长度
     */
    private Integer minLength;

    /**
     * 最大长度
     */
    private Integer maxLength;

    /**
     * 最小值
     */
    private String min;

    /**
     * 最大值
     */
    private String max;

    /**
     * 验证类型
     */
    private String validatorType;

    /**
     * xml里jdbcType
     */
    private String sqlType;

    /**
     * 下拉框类型 1 枚举， 2 接口， 3 读表
     */
    private String apiFlag;

    /**
     * 接口方法/表名
     */
    private String optionsMethod;

    /**
     * 选项值，在枚举是用该值解析
     */
    private String optionsValue;


    /**
     * 显示值
     */
    private String optionsLabel;

    /**
     * 数据库类型
     */
    private String optionsDataBaseType;

    /**
     * 数据库Code
     */
    private String optionsDataSourceCode;

    private Boolean logicalKey;

    private String orderFlag;


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

    public Integer getId() {
        return id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getRemark() {
        return remark;
    }

    public void setJdbcType(String jdbcType) {
        this.jdbcType = jdbcType;
    }

    public String getJdbcType() {
        return jdbcType;
    }

    public void setJavaType(String javaType) {
        this.javaType = javaType;
    }

    public String getJavaType() {
        return javaType;
    }

    public void setLength(Integer length) {
        this.length = length;
    }

    public Integer getLength() {
        return length;
    }

    public void setDecimalPlaces(Integer decimalPlaces) {
        this.decimalPlaces = decimalPlaces;
    }

    public Integer getDecimalPlaces() {
        return decimalPlaces;
    }

    public void setDefaultValue(String defaultValue) {
        this.defaultValue = defaultValue;
    }

    public String getDefaultValue() {
        return defaultValue;
    }

    public void setNotNull(Boolean notNull) {
        this.notNull = notNull;
    }

    public Boolean getNotNull() {
        return notNull;
    }

    public void setPrimaryKey(Boolean primaryKey) {
        this.primaryKey = primaryKey;
    }

    public Boolean getPrimaryKey() {
        return primaryKey;
    }

    public void setAutoIncrease(Boolean autoIncrease) {
        this.autoIncrease = autoIncrease;
    }

    public Boolean getAutoIncrease() {
        return autoIncrease;
    }

    public void setShowInList(Boolean showInList) {
        this.showInList = showInList;
    }

    public Boolean getShowInList() {
        return showInList;
    }

    public void setShowInForm(Boolean showInForm) {
        this.showInForm = showInForm;
    }

    public Boolean getShowInForm() {
        return showInForm;
    }

    public void setSearchable(Boolean searchable) {
        this.searchable = searchable;
    }

    public Boolean getSearchable() {
        return searchable;
    }

    public void setFormType(String formType) {
        this.formType = formType;
    }

    public String getFormType() {
        return formType;
    }

    public void setSearchMethod(String searchMethod) {
        this.searchMethod = searchMethod;
    }

    public String getSearchMethod() {
        return searchMethod;
    }

    public void setRequired(Boolean required) {
        this.required = required;
    }

    public Boolean getRequired() {
        return required;
    }

    public void setValidate(Boolean validate) {
        this.validate = validate;
    }

    public Boolean getValidate() {
        return validate;
    }

    public void setMinLength(Integer minLength) {
        this.minLength = minLength;
    }

    public Integer getMinLength() {
        return minLength;
    }

    public void setMaxLength(Integer maxLength) {
        this.maxLength = maxLength;
    }

    public Integer getMaxLength() {
        return maxLength;
    }

    public void setMin(String min) {
        this.min = min;
    }

    public String getMin() {
        return min;
    }

    public void setMax(String max) {
        this.max = max;
    }

    public String getMax() {
        return max;
    }

    public void setValidatorType(String validatorType) {
        this.validatorType = validatorType;
    }

    public String getValidatorType() {
        return validatorType;
    }

    public String getSqlType() {
        return sqlType;
    }

    public void setSqlType(String sqlType) {
        this.sqlType = sqlType;
    }

    public String getModelName() {
        return modelName;
    }

    public void setModelName(String modelName) {
        this.modelName = modelName;
    }

    public Boolean getSortable() {
        return sortable;
    }

    public void setSortable(Boolean sortable) {
        this.sortable = sortable;
    }

    public String getOptionsValue() {
        return optionsValue;
    }

    public void setOptionsValue(String optionsValue) {
        this.optionsValue = optionsValue;
    }

    public Boolean getLogicalKey() {
        return logicalKey;
    }

    public void setLogicalKey(Boolean logicalKey) {
        this.logicalKey = logicalKey;
    }


    public String getOptionsMethod() {
        return optionsMethod;
    }

    public void setOptionsMethod(String optionsMethod) {
        this.optionsMethod = optionsMethod;
    }

    public String getOptionsLabel() {
        return optionsLabel;
    }

    public void setOptionsLabel(String optionsLabel) {
        this.optionsLabel = optionsLabel;
    }


    public String getOptionsDataBaseType() {
        return optionsDataBaseType;
    }

    public void setOptionsDataBaseType(String optionsDataBaseType) {
        this.optionsDataBaseType = optionsDataBaseType;
    }

    public String getOptionsDataSourceCode() {
        return optionsDataSourceCode;
    }

    public void setOptionsDataSourceCode(String optionsDataSourceCode) {
        this.optionsDataSourceCode = optionsDataSourceCode;
    }

    public String getApiFlag() {
        return apiFlag;
    }

    public void setApiFlag(String apiFlag) {
        this.apiFlag = apiFlag;
    }

    public String getOrderFlag() {
        return orderFlag;
    }

    public void setOrderFlag(String orderFlag) {
        this.orderFlag = orderFlag;
    }
}

