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


import cn.vertxup.rbac.domain.tables.SPacket;
import cn.vertxup.rbac.domain.tables.interfaces.ISPacket;
import io.github.jklingsporn.vertx.jooq.shared.internal.VertxPojo;
import org.jooq.Record1;
import org.jooq.impl.UpdatableRecordImpl;

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

    private static final long serialVersionUID = 1L;

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.KEY</code>. 「key」- 包信息
     */
    @Override
    public SPacketRecord setKey(String value) {
        set(0, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.KEY</code>. 「key」- 包信息
     */
    @Override
    public String getKey() {
        return (String) get(0);
    }

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.CODE</code>. 「code」- 关联的 PATH 表对应的
     * code
     */
    @Override
    public SPacketRecord setCode(String value) {
        set(1, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.CODE</code>. 「code」- 关联的 PATH 表对应的
     * code
     */
    @Override
    public String getCode() {
        return (String) get(1);
    }

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.RESOURCE</code>. 「resource」-
     * 关联的资源表对应的 code
     */
    @Override
    public SPacketRecord setResource(String value) {
        set(2, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.RESOURCE</code>. 「resource」-
     * 关联的资源表对应的 code
     */
    @Override
    public String getResource() {
        return (String) get(2);
    }

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.H_TYPE</code>. 「hType」- 行过滤类型
     */
    @Override
    public SPacketRecord setHType(String value) {
        set(3, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.H_TYPE</code>. 「hType」- 行过滤类型
     */
    @Override
    public String getHType() {
        return (String) get(3);
    }

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.H_MAPPING</code>. 「hMapping」-
     * 字段映射关系，存在转换时必须
     */
    @Override
    public SPacketRecord setHMapping(String value) {
        set(4, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.H_MAPPING</code>. 「hMapping」-
     * 字段映射关系，存在转换时必须
     */
    @Override
    public String getHMapping() {
        return (String) get(4);
    }

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.H_CONFIG</code>. 「hConfig」- 字段附加配置
     */
    @Override
    public SPacketRecord setHConfig(String value) {
        set(5, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.H_CONFIG</code>. 「hConfig」- 字段附加配置
     */
    @Override
    public String getHConfig() {
        return (String) get(5);
    }

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.V_TYPE</code>. 「vType」- 列过滤类型
     */
    @Override
    public SPacketRecord setVType(String value) {
        set(6, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.V_TYPE</code>. 「vType」- 列过滤类型
     */
    @Override
    public String getVType() {
        return (String) get(6);
    }

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.V_MAPPING</code>. 「vMapping」-
     * 列字段映射关系，存在转换时必须
     */
    @Override
    public SPacketRecord setVMapping(String value) {
        set(7, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.V_MAPPING</code>. 「vMapping」-
     * 列字段映射关系，存在转换时必须
     */
    @Override
    public String getVMapping() {
        return (String) get(7);
    }

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.V_CONFIG</code>. 「vConfig」- 列配置
     */
    @Override
    public SPacketRecord setVConfig(String value) {
        set(8, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.V_CONFIG</code>. 「vConfig」- 列配置
     */
    @Override
    public String getVConfig() {
        return (String) get(8);
    }

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.Q_TYPE</code>. 「qType」- 条件模板
     */
    @Override
    public SPacketRecord setQType(String value) {
        set(9, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.Q_TYPE</code>. 「qType」- 条件模板
     */
    @Override
    public String getQType() {
        return (String) get(9);
    }

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.Q_MAPPING</code>. 「qMapping」-
     * 查询条件映射关系
     */
    @Override
    public SPacketRecord setQMapping(String value) {
        set(10, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.Q_MAPPING</code>. 「qMapping」-
     * 查询条件映射关系
     */
    @Override
    public String getQMapping() {
        return (String) get(10);
    }

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.Q_CONFIG</code>. 「qConfig」-
     * 条件配置（界面配置相关）
     */
    @Override
    public SPacketRecord setQConfig(String value) {
        set(11, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.Q_CONFIG</code>. 「qConfig」-
     * 条件配置（界面配置相关）
     */
    @Override
    public String getQConfig() {
        return (String) get(11);
    }

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.RUN_COMPONENT</code>.
     * 「runComponent」- 自定义模式下的组件
     */
    @Override
    public SPacketRecord setRunComponent(String value) {
        set(12, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.RUN_COMPONENT</code>.
     * 「runComponent」- 自定义模式下的组件
     */
    @Override
    public String getRunComponent() {
        return (String) get(12);
    }

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.RUN_CONFIG</code>. 「runConfig」-
     * 运行专用配置
     */
    @Override
    public SPacketRecord setRunConfig(String value) {
        set(13, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.RUN_CONFIG</code>. 「runConfig」-
     * 运行专用配置
     */
    @Override
    public String getRunConfig() {
        return (String) get(13);
    }

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.SEEK_SYNTAX</code>. 「seekSyntax」-
     * 访问者语法
     */
    @Override
    public SPacketRecord setSeekSyntax(String value) {
        set(14, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.SEEK_SYNTAX</code>. 「seekSyntax」-
     * 访问者语法
     */
    @Override
    public String getSeekSyntax() {
        return (String) get(14);
    }

    /**
     * Setter for <code>DB_ETERNAL.S_PACKET.SEEK_CONFIG</code>. 「seekConfig」-
     * 访问者配置
     */
    @Override
    public SPacketRecord setSeekConfig(String value) {
        set(15, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.S_PACKET.SEEK_CONFIG</code>. 「seekConfig」-
     * 访问者配置
     */
    @Override
    public String getSeekConfig() {
        return (String) get(15);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @Override
    public void from(ISPacket from) {
        setKey(from.getKey());
        setCode(from.getCode());
        setResource(from.getResource());
        setHType(from.getHType());
        setHMapping(from.getHMapping());
        setHConfig(from.getHConfig());
        setVType(from.getVType());
        setVMapping(from.getVMapping());
        setVConfig(from.getVConfig());
        setQType(from.getQType());
        setQMapping(from.getQMapping());
        setQConfig(from.getQConfig());
        setRunComponent(from.getRunComponent());
        setRunConfig(from.getRunConfig());
        setSeekSyntax(from.getSeekSyntax());
        setSeekConfig(from.getSeekConfig());
        setSigma(from.getSigma());
        setLanguage(from.getLanguage());
        setActive(from.getActive());
        setMetadata(from.getMetadata());
        setCreatedAt(from.getCreatedAt());
        setCreatedBy(from.getCreatedBy());
        setUpdatedAt(from.getUpdatedAt());
        setUpdatedBy(from.getUpdatedBy());
    }

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

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

    /**
     * Create a detached SPacketRecord
     */
    public SPacketRecord() {
        super(SPacket.S_PACKET);
    }

    /**
     * Create a detached, initialised SPacketRecord
     */
    public SPacketRecord(String key, String code, String resource, String hType, String hMapping, String hConfig, String vType, String vMapping, String vConfig, String qType, String qMapping, String qConfig, String runComponent, String runConfig, String seekSyntax, String seekConfig, String sigma, String language, Boolean active, String metadata, LocalDateTime createdAt, String createdBy, LocalDateTime updatedAt, String updatedBy) {
        super(SPacket.S_PACKET);

        setKey(key);
        setCode(code);
        setResource(resource);
        setHType(hType);
        setHMapping(hMapping);
        setHConfig(hConfig);
        setVType(vType);
        setVMapping(vMapping);
        setVConfig(vConfig);
        setQType(qType);
        setQMapping(qMapping);
        setQConfig(qConfig);
        setRunComponent(runComponent);
        setRunConfig(runConfig);
        setSeekSyntax(seekSyntax);
        setSeekConfig(seekConfig);
        setSigma(sigma);
        setLanguage(language);
        setActive(active);
        setMetadata(metadata);
        setCreatedAt(createdAt);
        setCreatedBy(createdBy);
        setUpdatedAt(updatedAt);
        setUpdatedBy(updatedBy);
    }

    /**
     * Create a detached, initialised SPacketRecord
     */
    public SPacketRecord(cn.vertxup.rbac.domain.tables.pojos.SPacket value) {
        super(SPacket.S_PACKET);

        if (value != null) {
            setKey(value.getKey());
            setCode(value.getCode());
            setResource(value.getResource());
            setHType(value.getHType());
            setHMapping(value.getHMapping());
            setHConfig(value.getHConfig());
            setVType(value.getVType());
            setVMapping(value.getVMapping());
            setVConfig(value.getVConfig());
            setQType(value.getQType());
            setQMapping(value.getQMapping());
            setQConfig(value.getQConfig());
            setRunComponent(value.getRunComponent());
            setRunConfig(value.getRunConfig());
            setSeekSyntax(value.getSeekSyntax());
            setSeekConfig(value.getSeekConfig());
            setSigma(value.getSigma());
            setLanguage(value.getLanguage());
            setActive(value.getActive());
            setMetadata(value.getMetadata());
            setCreatedAt(value.getCreatedAt());
            setCreatedBy(value.getCreatedBy());
            setUpdatedAt(value.getUpdatedAt());
            setUpdatedBy(value.getUpdatedBy());
        }
    }

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