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


import cn.vertxup.ui.domain.tables.UiPage;
import cn.vertxup.ui.domain.tables.interfaces.IUiPage;
import io.github.jklingsporn.vertx.jooq.shared.internal.VertxPojo;
import org.jooq.Field;
import org.jooq.Record1;
import org.jooq.Record20;
import org.jooq.Row20;
import org.jooq.impl.UpdatableRecordImpl;

import java.time.LocalDateTime;
/**
 * This class is generated by jOOQ.
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class UiPageRecord extends UpdatableRecordImpl<UiPageRecord> implements VertxPojo, Record20<String, String, String, String, String, Boolean, String, String, String, String, String, String, Boolean, String, String, String, LocalDateTime, String, LocalDateTime, String>, IUiPage {

    private static final long serialVersionUID = 1L;

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.KEY</code>. 「key」- 页面唯一主键
     */
    @Override
    public UiPageRecord setKey(String value) {
        set(0, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.KEY</code>. 「key」- 页面唯一主键
     */
    @Override
    public String getKey() {
        return (String) get(0);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.APP</code>. 「app」- 入口APP名称，APP中的path
     */
    @Override
    public UiPageRecord setApp(String value) {
        set(1, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.APP</code>. 「app」- 入口APP名称，APP中的path
     */
    @Override
    public String getApp() {
        return (String) get(1);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.MODULE</code>. 「module」- 模块相关信息
     */
    @Override
    public UiPageRecord setModule(String value) {
        set(2, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.MODULE</code>. 「module」- 模块相关信息
     */
    @Override
    public String getModule() {
        return (String) get(2);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.PAGE</code>. 「page」- 页面路径信息
     */
    @Override
    public UiPageRecord setPage(String value) {
        set(3, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.PAGE</code>. 「page」- 页面路径信息
     */
    @Override
    public String getPage() {
        return (String) get(3);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.LAYOUT_ID</code>. 「layoutId」-
     * 使用的模板ID，最终生成 layout 顶层节点数据
     */
    @Override
    public UiPageRecord setLayoutId(String value) {
        set(4, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.LAYOUT_ID</code>. 「layoutId」-
     * 使用的模板ID，最终生成 layout 顶层节点数据
     */
    @Override
    public String getLayoutId() {
        return (String) get(4);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.SECURE</code>. 「secure」-
     * 是否执行安全检查（安全检查才会被权限系统捕捉）
     */
    @Override
    public UiPageRecord setSecure(Boolean value) {
        set(5, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.SECURE</code>. 「secure」-
     * 是否执行安全检查（安全检查才会被权限系统捕捉）
     */
    @Override
    public Boolean getSecure() {
        return (Boolean) get(5);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.PARAM_MAP</code>. 「paramMap」-
     * URL地址中的配置key=value
     */
    @Override
    public UiPageRecord setParamMap(String value) {
        set(6, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.PARAM_MAP</code>. 「paramMap」-
     * URL地址中的配置key=value
     */
    @Override
    public String getParamMap() {
        return (String) get(6);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.CONTAINER_NAME</code>.
     * 「containerName」- 当前页面是否存在容器，如果有容器，那么设置容器名称
     */
    @Override
    public UiPageRecord setContainerName(String value) {
        set(7, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.CONTAINER_NAME</code>.
     * 「containerName」- 当前页面是否存在容器，如果有容器，那么设置容器名称
     */
    @Override
    public String getContainerName() {
        return (String) get(7);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.CONTAINER_CONFIG</code>.
     * 「containerConfig」- 当前页面容器相关配置
     */
    @Override
    public UiPageRecord setContainerConfig(String value) {
        set(8, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.CONTAINER_CONFIG</code>.
     * 「containerConfig」- 当前页面容器相关配置
     */
    @Override
    public String getContainerConfig() {
        return (String) get(8);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.STATE</code>. 「state」- 当前页面的初始化状态信息
     */
    @Override
    public UiPageRecord setState(String value) {
        set(9, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.STATE</code>. 「state」- 当前页面的初始化状态信息
     */
    @Override
    public String getState() {
        return (String) get(9);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.GRID</code>. 「grid」-
     * 当前页面的布局信息，Grid布局格式
     */
    @Override
    public UiPageRecord setGrid(String value) {
        set(10, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.GRID</code>. 「grid」-
     * 当前页面的布局信息，Grid布局格式
     */
    @Override
    public String getGrid() {
        return (String) get(10);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.ASSIST</code>. 「assist」-
     * 当前页面的辅助数据Ajax配置
     */
    @Override
    public UiPageRecord setAssist(String value) {
        set(11, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.ASSIST</code>. 「assist」-
     * 当前页面的辅助数据Ajax配置
     */
    @Override
    public String getAssist() {
        return (String) get(11);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.ACTIVE</code>. 「active」- 是否启用
     */
    @Override
    public UiPageRecord setActive(Boolean value) {
        set(12, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.ACTIVE</code>. 「active」- 是否启用
     */
    @Override
    public Boolean getActive() {
        return (Boolean) get(12);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.SIGMA</code>. 「sigma」- 统一标识
     */
    @Override
    public UiPageRecord setSigma(String value) {
        set(13, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.SIGMA</code>. 「sigma」- 统一标识
     */
    @Override
    public String getSigma() {
        return (String) get(13);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.METADATA</code>. 「metadata」- 附加配置
     */
    @Override
    public UiPageRecord setMetadata(String value) {
        set(14, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.METADATA</code>. 「metadata」- 附加配置
     */
    @Override
    public String getMetadata() {
        return (String) get(14);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.LANGUAGE</code>. 「language」- 使用的语言
     */
    @Override
    public UiPageRecord setLanguage(String value) {
        set(15, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.LANGUAGE</code>. 「language」- 使用的语言
     */
    @Override
    public String getLanguage() {
        return (String) get(15);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.CREATED_AT</code>. 「createdAt」- 创建时间
     */
    @Override
    public UiPageRecord setCreatedAt(LocalDateTime value) {
        set(16, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.CREATED_AT</code>. 「createdAt」- 创建时间
     */
    @Override
    public LocalDateTime getCreatedAt() {
        return (LocalDateTime) get(16);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.CREATED_BY</code>. 「createdBy」- 创建人
     */
    @Override
    public UiPageRecord setCreatedBy(String value) {
        set(17, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.CREATED_BY</code>. 「createdBy」- 创建人
     */
    @Override
    public String getCreatedBy() {
        return (String) get(17);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.UPDATED_AT</code>. 「updatedAt」- 更新时间
     */
    @Override
    public UiPageRecord setUpdatedAt(LocalDateTime value) {
        set(18, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.UPDATED_AT</code>. 「updatedAt」- 更新时间
     */
    @Override
    public LocalDateTime getUpdatedAt() {
        return (LocalDateTime) get(18);
    }

    /**
     * Setter for <code>DB_ETERNAL.UI_PAGE.UPDATED_BY</code>. 「updatedBy」- 更新人
     */
    @Override
    public UiPageRecord setUpdatedBy(String value) {
        set(19, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.UI_PAGE.UPDATED_BY</code>. 「updatedBy」- 更新人
     */
    @Override
    public String getUpdatedBy() {
        return (String) get(19);
    }

    // -------------------------------------------------------------------------
    // Primary key information
    // -------------------------------------------------------------------------

    @Override
    public Record1<String> key() {
        return (Record1) super.key();
    }

    // -------------------------------------------------------------------------
    // Record20 type implementation
    // -------------------------------------------------------------------------

    @Override
    public Row20<String, String, String, String, String, Boolean, String, String, String, String, String, String, Boolean, String, String, String, LocalDateTime, String, LocalDateTime, String> fieldsRow() {
        return (Row20) super.fieldsRow();
    }

    @Override
    public Row20<String, String, String, String, String, Boolean, String, String, String, String, String, String, Boolean, String, String, String, LocalDateTime, String, LocalDateTime, String> valuesRow() {
        return (Row20) super.valuesRow();
    }

    @Override
    public Field<String> field1() {
        return UiPage.UI_PAGE.KEY;
    }

    @Override
    public Field<String> field2() {
        return UiPage.UI_PAGE.APP;
    }

    @Override
    public Field<String> field3() {
        return UiPage.UI_PAGE.MODULE;
    }

    @Override
    public Field<String> field4() {
        return UiPage.UI_PAGE.PAGE;
    }

    @Override
    public Field<String> field5() {
        return UiPage.UI_PAGE.LAYOUT_ID;
    }

    @Override
    public Field<Boolean> field6() {
        return UiPage.UI_PAGE.SECURE;
    }

    @Override
    public Field<String> field7() {
        return UiPage.UI_PAGE.PARAM_MAP;
    }

    @Override
    public Field<String> field8() {
        return UiPage.UI_PAGE.CONTAINER_NAME;
    }

    @Override
    public Field<String> field9() {
        return UiPage.UI_PAGE.CONTAINER_CONFIG;
    }

    @Override
    public Field<String> field10() {
        return UiPage.UI_PAGE.STATE;
    }

    @Override
    public Field<String> field11() {
        return UiPage.UI_PAGE.GRID;
    }

    @Override
    public Field<String> field12() {
        return UiPage.UI_PAGE.ASSIST;
    }

    @Override
    public Field<Boolean> field13() {
        return UiPage.UI_PAGE.ACTIVE;
    }

    @Override
    public Field<String> field14() {
        return UiPage.UI_PAGE.SIGMA;
    }

    @Override
    public Field<String> field15() {
        return UiPage.UI_PAGE.METADATA;
    }

    @Override
    public Field<String> field16() {
        return UiPage.UI_PAGE.LANGUAGE;
    }

    @Override
    public Field<LocalDateTime> field17() {
        return UiPage.UI_PAGE.CREATED_AT;
    }

    @Override
    public Field<String> field18() {
        return UiPage.UI_PAGE.CREATED_BY;
    }

    @Override
    public Field<LocalDateTime> field19() {
        return UiPage.UI_PAGE.UPDATED_AT;
    }

    @Override
    public Field<String> field20() {
        return UiPage.UI_PAGE.UPDATED_BY;
    }

    @Override
    public String component1() {
        return getKey();
    }

    @Override
    public String component2() {
        return getApp();
    }

    @Override
    public String component3() {
        return getModule();
    }

    @Override
    public String component4() {
        return getPage();
    }

    @Override
    public String component5() {
        return getLayoutId();
    }

    @Override
    public Boolean component6() {
        return getSecure();
    }

    @Override
    public String component7() {
        return getParamMap();
    }

    @Override
    public String component8() {
        return getContainerName();
    }

    @Override
    public String component9() {
        return getContainerConfig();
    }

    @Override
    public String component10() {
        return getState();
    }

    @Override
    public String component11() {
        return getGrid();
    }

    @Override
    public String component12() {
        return getAssist();
    }

    @Override
    public Boolean component13() {
        return getActive();
    }

    @Override
    public String component14() {
        return getSigma();
    }

    @Override
    public String component15() {
        return getMetadata();
    }

    @Override
    public String component16() {
        return getLanguage();
    }

    @Override
    public LocalDateTime component17() {
        return getCreatedAt();
    }

    @Override
    public String component18() {
        return getCreatedBy();
    }

    @Override
    public LocalDateTime component19() {
        return getUpdatedAt();
    }

    @Override
    public String component20() {
        return getUpdatedBy();
    }

    @Override
    public String value1() {
        return getKey();
    }

    @Override
    public String value2() {
        return getApp();
    }

    @Override
    public String value3() {
        return getModule();
    }

    @Override
    public String value4() {
        return getPage();
    }

    @Override
    public String value5() {
        return getLayoutId();
    }

    @Override
    public Boolean value6() {
        return getSecure();
    }

    @Override
    public String value7() {
        return getParamMap();
    }

    @Override
    public String value8() {
        return getContainerName();
    }

    @Override
    public String value9() {
        return getContainerConfig();
    }

    @Override
    public String value10() {
        return getState();
    }

    @Override
    public String value11() {
        return getGrid();
    }

    @Override
    public String value12() {
        return getAssist();
    }

    @Override
    public Boolean value13() {
        return getActive();
    }

    @Override
    public String value14() {
        return getSigma();
    }

    @Override
    public String value15() {
        return getMetadata();
    }

    @Override
    public String value16() {
        return getLanguage();
    }

    @Override
    public LocalDateTime value17() {
        return getCreatedAt();
    }

    @Override
    public String value18() {
        return getCreatedBy();
    }

    @Override
    public LocalDateTime value19() {
        return getUpdatedAt();
    }

    @Override
    public String value20() {
        return getUpdatedBy();
    }

    @Override
    public UiPageRecord value1(String value) {
        setKey(value);
        return this;
    }

    @Override
    public UiPageRecord value2(String value) {
        setApp(value);
        return this;
    }

    @Override
    public UiPageRecord value3(String value) {
        setModule(value);
        return this;
    }

    @Override
    public UiPageRecord value4(String value) {
        setPage(value);
        return this;
    }

    @Override
    public UiPageRecord value5(String value) {
        setLayoutId(value);
        return this;
    }

    @Override
    public UiPageRecord value6(Boolean value) {
        setSecure(value);
        return this;
    }

    @Override
    public UiPageRecord value7(String value) {
        setParamMap(value);
        return this;
    }

    @Override
    public UiPageRecord value8(String value) {
        setContainerName(value);
        return this;
    }

    @Override
    public UiPageRecord value9(String value) {
        setContainerConfig(value);
        return this;
    }

    @Override
    public UiPageRecord value10(String value) {
        setState(value);
        return this;
    }

    @Override
    public UiPageRecord value11(String value) {
        setGrid(value);
        return this;
    }

    @Override
    public UiPageRecord value12(String value) {
        setAssist(value);
        return this;
    }

    @Override
    public UiPageRecord value13(Boolean value) {
        setActive(value);
        return this;
    }

    @Override
    public UiPageRecord value14(String value) {
        setSigma(value);
        return this;
    }

    @Override
    public UiPageRecord value15(String value) {
        setMetadata(value);
        return this;
    }

    @Override
    public UiPageRecord value16(String value) {
        setLanguage(value);
        return this;
    }

    @Override
    public UiPageRecord value17(LocalDateTime value) {
        setCreatedAt(value);
        return this;
    }

    @Override
    public UiPageRecord value18(String value) {
        setCreatedBy(value);
        return this;
    }

    @Override
    public UiPageRecord value19(LocalDateTime value) {
        setUpdatedAt(value);
        return this;
    }

    @Override
    public UiPageRecord value20(String value) {
        setUpdatedBy(value);
        return this;
    }

    @Override
    public UiPageRecord values(String value1, String value2, String value3, String value4, String value5, Boolean value6, String value7, String value8, String value9, String value10, String value11, String value12, Boolean value13, String value14, String value15, String value16, LocalDateTime value17, String value18, LocalDateTime value19, String value20) {
        value1(value1);
        value2(value2);
        value3(value3);
        value4(value4);
        value5(value5);
        value6(value6);
        value7(value7);
        value8(value8);
        value9(value9);
        value10(value10);
        value11(value11);
        value12(value12);
        value13(value13);
        value14(value14);
        value15(value15);
        value16(value16);
        value17(value17);
        value18(value18);
        value19(value19);
        value20(value20);
        return this;
    }

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

    @Override
    public void from(IUiPage from) {
        setKey(from.getKey());
        setApp(from.getApp());
        setModule(from.getModule());
        setPage(from.getPage());
        setLayoutId(from.getLayoutId());
        setSecure(from.getSecure());
        setParamMap(from.getParamMap());
        setContainerName(from.getContainerName());
        setContainerConfig(from.getContainerConfig());
        setState(from.getState());
        setGrid(from.getGrid());
        setAssist(from.getAssist());
        setActive(from.getActive());
        setSigma(from.getSigma());
        setMetadata(from.getMetadata());
        setLanguage(from.getLanguage());
        setCreatedAt(from.getCreatedAt());
        setCreatedBy(from.getCreatedBy());
        setUpdatedAt(from.getUpdatedAt());
        setUpdatedBy(from.getUpdatedBy());
    }

    @Override
    public <E extends IUiPage> E into(E into) {
        into.from(this);
        return into;
    }

    // -------------------------------------------------------------------------
    // Constructors
    // -------------------------------------------------------------------------

    /**
     * Create a detached UiPageRecord
     */
    public UiPageRecord() {
        super(UiPage.UI_PAGE);
    }

    /**
     * Create a detached, initialised UiPageRecord
     */
    public UiPageRecord(String key, String app, String module, String page, String layoutId, Boolean secure, String paramMap, String containerName, String containerConfig, String state, String grid, String assist, Boolean active, String sigma, String metadata, String language, LocalDateTime createdAt, String createdBy, LocalDateTime updatedAt, String updatedBy) {
        super(UiPage.UI_PAGE);

        setKey(key);
        setApp(app);
        setModule(module);
        setPage(page);
        setLayoutId(layoutId);
        setSecure(secure);
        setParamMap(paramMap);
        setContainerName(containerName);
        setContainerConfig(containerConfig);
        setState(state);
        setGrid(grid);
        setAssist(assist);
        setActive(active);
        setSigma(sigma);
        setMetadata(metadata);
        setLanguage(language);
        setCreatedAt(createdAt);
        setCreatedBy(createdBy);
        setUpdatedAt(updatedAt);
        setUpdatedBy(updatedBy);
    }

    /**
     * Create a detached, initialised UiPageRecord
     */
    public UiPageRecord(cn.vertxup.ui.domain.tables.pojos.UiPage value) {
        super(UiPage.UI_PAGE);

        if (value != null) {
            setKey(value.getKey());
            setApp(value.getApp());
            setModule(value.getModule());
            setPage(value.getPage());
            setLayoutId(value.getLayoutId());
            setSecure(value.getSecure());
            setParamMap(value.getParamMap());
            setContainerName(value.getContainerName());
            setContainerConfig(value.getContainerConfig());
            setState(value.getState());
            setGrid(value.getGrid());
            setAssist(value.getAssist());
            setActive(value.getActive());
            setSigma(value.getSigma());
            setMetadata(value.getMetadata());
            setLanguage(value.getLanguage());
            setCreatedAt(value.getCreatedAt());
            setCreatedBy(value.getCreatedBy());
            setUpdatedAt(value.getUpdatedAt());
            setUpdatedBy(value.getUpdatedBy());
        }
    }

        public UiPageRecord(io.vertx.core.json.JsonObject json) {
                this();
                fromJson(json);
        }
}
