/*
 * This file is generated by jOOQ.
 */
package cn.vertxup.ui.domain.tables.interfaces;


import io.github.jklingsporn.vertx.jooq.shared.internal.VertxPojo;

import java.io.Serializable;

import static io.github.jklingsporn.vertx.jooq.shared.internal.VertxPojo.setOrThrow;
/**
 * This class is generated by jOOQ.
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public interface IVSearch extends VertxPojo, Serializable {

    /**
     * Setter for <code>DB_ETERNAL.V_SEARCH.KEY</code>. 「key」- 选项主键
     */
    public IVSearch setKey(String value);

    /**
     * Getter for <code>DB_ETERNAL.V_SEARCH.KEY</code>. 「key」- 选项主键
     */
    public String getKey();

    /**
     * Setter for <code>DB_ETERNAL.V_SEARCH.ENABLED</code>. 「enabled」-
     * search.enabled: 是否启用搜索
     */
    public IVSearch setEnabled(Boolean value);

    /**
     * Getter for <code>DB_ETERNAL.V_SEARCH.ENABLED</code>. 「enabled」-
     * search.enabled: 是否启用搜索
     */
    public Boolean getEnabled();

    /**
     * Setter for <code>DB_ETERNAL.V_SEARCH.ADVANCED</code>. 「advanced」-
     * search.advanced: 是否启用高级搜索
     */
    public IVSearch setAdvanced(Boolean value);

    /**
     * Getter for <code>DB_ETERNAL.V_SEARCH.ADVANCED</code>. 「advanced」-
     * search.advanced: 是否启用高级搜索
     */
    public Boolean getAdvanced();

    /**
     * Setter for <code>DB_ETERNAL.V_SEARCH.OP_REDO</code>. 「opRedo」-
     * search.op.redo: 清除条件按钮提示文字
     */
    public IVSearch setOpRedo(String value);

    /**
     * Getter for <code>DB_ETERNAL.V_SEARCH.OP_REDO</code>. 「opRedo」-
     * search.op.redo: 清除条件按钮提示文字
     */
    public String getOpRedo();

    /**
     * Setter for <code>DB_ETERNAL.V_SEARCH.OP_ADVANCED</code>. 「opAdvanced」-
     * search.op.advanced: 高级搜索按钮提示文字
     */
    public IVSearch setOpAdvanced(String value);

    /**
     * Getter for <code>DB_ETERNAL.V_SEARCH.OP_ADVANCED</code>. 「opAdvanced」-
     * search.op.advanced: 高级搜索按钮提示文字
     */
    public String getOpAdvanced();

    /**
     * Setter for <code>DB_ETERNAL.V_SEARCH.OP_VIEW</code>. 「opView」-
     * search.op.view：视图查询条件修改文字
     */
    public IVSearch setOpView(String value);

    /**
     * Getter for <code>DB_ETERNAL.V_SEARCH.OP_VIEW</code>. 「opView」-
     * search.op.view：视图查询条件修改文字
     */
    public String getOpView();

    /**
     * Setter for <code>DB_ETERNAL.V_SEARCH.CONFIRM_CLEAR</code>.
     * 「confirmClear」- search.confirm.clear: 清除条件提示
     */
    public IVSearch setConfirmClear(String value);

    /**
     * Getter for <code>DB_ETERNAL.V_SEARCH.CONFIRM_CLEAR</code>.
     * 「confirmClear」- search.confirm.clear: 清除条件提示
     */
    public String getConfirmClear();

    /**
     * Setter for <code>DB_ETERNAL.V_SEARCH.PLACEHOLDER</code>. 「placeholder」-
     * search.placeholder: 搜索框水印文字
     */
    public IVSearch setPlaceholder(String value);

    /**
     * Getter for <code>DB_ETERNAL.V_SEARCH.PLACEHOLDER</code>. 「placeholder」-
     * search.placeholder: 搜索框水印文字
     */
    public String getPlaceholder();

    /**
     * Setter for <code>DB_ETERNAL.V_SEARCH.COND</code>. 「cond」- search.cond:
     * 搜索条件
     */
    public IVSearch setCond(String value);

    /**
     * Getter for <code>DB_ETERNAL.V_SEARCH.COND</code>. 「cond」- search.cond:
     * 搜索条件
     */
    public String getCond();

    /**
     * Setter for <code>DB_ETERNAL.V_SEARCH.ADVANCED_WIDTH</code>.
     * 「advancedWidth」- search.advanced.width: 高级搜索窗口宽度
     */
    public IVSearch setAdvancedWidth(String value);

    /**
     * Getter for <code>DB_ETERNAL.V_SEARCH.ADVANCED_WIDTH</code>.
     * 「advancedWidth」- search.advanced.width: 高级搜索窗口宽度
     */
    public String getAdvancedWidth();

    /**
     * Setter for <code>DB_ETERNAL.V_SEARCH.ADVANCED_TITLE</code>.
     * 「advancedTitle」- search.advanced.title: 高级搜索窗口标题
     */
    public IVSearch setAdvancedTitle(String value);

    /**
     * Getter for <code>DB_ETERNAL.V_SEARCH.ADVANCED_TITLE</code>.
     * 「advancedTitle」- search.advanced.title: 高级搜索窗口标题
     */
    public String getAdvancedTitle();

    /**
     * Setter for <code>DB_ETERNAL.V_SEARCH.ADVANCED_NOTICE</code>.
     * 「advancedNotice」- search.advanced.notice: 提示信息结构（Alert）
     */
    public IVSearch setAdvancedNotice(String value);

    /**
     * Getter for <code>DB_ETERNAL.V_SEARCH.ADVANCED_NOTICE</code>.
     * 「advancedNotice」- search.advanced.notice: 提示信息结构（Alert）
     */
    public String getAdvancedNotice();

    /**
     * Setter for <code>DB_ETERNAL.V_SEARCH.ADVANCED_VIEW</code>. 「viewOption」-
     * search.criteria.xxx：视图选项信息
     */
    public IVSearch setAdvancedView(String value);

    /**
     * Getter for <code>DB_ETERNAL.V_SEARCH.ADVANCED_VIEW</code>. 「viewOption」-
     * search.criteria.xxx：视图选项信息
     */
    public String getAdvancedView();

    // -------------------------------------------------------------------------
    // FROM and INTO
    // -------------------------------------------------------------------------

    /**
     * Load data from another generated Record/POJO implementing the common
     * interface IVSearch
     */
    public void from(IVSearch from);

    /**
     * Copy data into another generated Record/POJO implementing the common
     * interface IVSearch
     */
    public <E extends IVSearch> E into(E into);

        @Override
        public default IVSearch fromJson(io.vertx.core.json.JsonObject json) {
                setOrThrow(this::setKey,json::getString,"KEY","java.lang.String");
                setOrThrow(this::setEnabled,json::getBoolean,"ENABLED","java.lang.Boolean");
                setOrThrow(this::setAdvanced,json::getBoolean,"ADVANCED","java.lang.Boolean");
                setOrThrow(this::setOpRedo,json::getString,"OP_REDO","java.lang.String");
                setOrThrow(this::setOpAdvanced,json::getString,"OP_ADVANCED","java.lang.String");
                setOrThrow(this::setOpView,json::getString,"OP_VIEW","java.lang.String");
                setOrThrow(this::setConfirmClear,json::getString,"CONFIRM_CLEAR","java.lang.String");
                setOrThrow(this::setPlaceholder,json::getString,"PLACEHOLDER","java.lang.String");
                setOrThrow(this::setCond,json::getString,"COND","java.lang.String");
                setOrThrow(this::setAdvancedWidth,json::getString,"ADVANCED_WIDTH","java.lang.String");
                setOrThrow(this::setAdvancedTitle,json::getString,"ADVANCED_TITLE","java.lang.String");
                setOrThrow(this::setAdvancedNotice,json::getString,"ADVANCED_NOTICE","java.lang.String");
                setOrThrow(this::setAdvancedView,json::getString,"ADVANCED_VIEW","java.lang.String");
                return this;
        }


        @Override
        public default io.vertx.core.json.JsonObject toJson() {
                io.vertx.core.json.JsonObject json = new io.vertx.core.json.JsonObject();
                json.put("KEY",getKey());
                json.put("ENABLED",getEnabled());
                json.put("ADVANCED",getAdvanced());
                json.put("OP_REDO",getOpRedo());
                json.put("OP_ADVANCED",getOpAdvanced());
                json.put("OP_VIEW",getOpView());
                json.put("CONFIRM_CLEAR",getConfirmClear());
                json.put("PLACEHOLDER",getPlaceholder());
                json.put("COND",getCond());
                json.put("ADVANCED_WIDTH",getAdvancedWidth());
                json.put("ADVANCED_TITLE",getAdvancedTitle());
                json.put("ADVANCED_NOTICE",getAdvancedNotice());
                json.put("ADVANCED_VIEW",getAdvancedView());
                return json;
        }

}
