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


import cn.vertxup.fm.domain.tables.FBank;
import cn.vertxup.fm.domain.tables.interfaces.IFBank;
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 FBankRecord extends UpdatableRecordImpl<FBankRecord> implements VertxPojo, Record20<String, String, String, String, String, String, String, String, String, Boolean, String, String, String, String, Boolean, String, LocalDateTime, String, LocalDateTime, String>, IFBank {

    private static final long serialVersionUID = 1L;

    /**
     * Setter for <code>DB_ETERNAL.F_BANK.KEY</code>. 「key」- 银行主键
     */
    @Override
    public FBankRecord setKey(String value) {
        set(0, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.F_BANK.KEY</code>. 「key」- 银行主键
     */
    @Override
    public String getKey() {
        return (String) get(0);
    }

    /**
     * Setter for <code>DB_ETERNAL.F_BANK.NAME</code>. 「name」- 银行名称
     */
    @Override
    public FBankRecord setName(String value) {
        set(1, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.F_BANK.NAME</code>. 「name」- 银行名称
     */
    @Override
    public String getName() {
        return (String) get(1);
    }

    /**
     * Setter for <code>DB_ETERNAL.F_BANK.CODE</code>. 「code」- 银行系统编号
     */
    @Override
    public FBankRecord setCode(String value) {
        set(2, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.F_BANK.CODE</code>. 「code」- 银行系统编号
     */
    @Override
    public String getCode() {
        return (String) get(2);
    }

    /**
     * Setter for <code>DB_ETERNAL.F_BANK.ALIAS</code>. 「alias」- 银行别称
     */
    @Override
    public FBankRecord setAlias(String value) {
        set(3, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.F_BANK.ALIAS</code>. 「alias」- 银行别称
     */
    @Override
    public String getAlias() {
        return (String) get(3);
    }

    /**
     * Setter for <code>DB_ETERNAL.F_BANK.LOGO</code>. 「logo」- 银行图标
     */
    @Override
    public FBankRecord setLogo(String value) {
        set(4, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.F_BANK.LOGO</code>. 「logo」- 银行图标
     */
    @Override
    public String getLogo() {
        return (String) get(4);
    }

    /**
     * Setter for <code>DB_ETERNAL.F_BANK.WEBSITE</code>. 「website」- 银行主页
     */
    @Override
    public FBankRecord setWebsite(String value) {
        set(5, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.F_BANK.WEBSITE</code>. 「website」- 银行主页
     */
    @Override
    public String getWebsite() {
        return (String) get(5);
    }

    /**
     * Setter for <code>DB_ETERNAL.F_BANK.COMMENT</code>. 「comment」 - 银行备注
     */
    @Override
    public FBankRecord setComment(String value) {
        set(6, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.F_BANK.COMMENT</code>. 「comment」 - 银行备注
     */
    @Override
    public String getComment() {
        return (String) get(6);
    }

    /**
     * Setter for <code>DB_ETERNAL.F_BANK.BRANCH_NAME</code>. 「branchName」- 支行名称
     */
    @Override
    public FBankRecord setBranchName(String value) {
        set(7, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.F_BANK.BRANCH_NAME</code>. 「branchName」- 支行名称
     */
    @Override
    public String getBranchName() {
        return (String) get(7);
    }

    /**
     * Setter for <code>DB_ETERNAL.F_BANK.BRANCH_CODE</code>. 「branchCode」- 支行编号
     */
    @Override
    public FBankRecord setBranchCode(String value) {
        set(8, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.F_BANK.BRANCH_CODE</code>. 「branchCode」- 支行编号
     */
    @Override
    public String getBranchCode() {
        return (String) get(8);
    }

    /**
     * Setter for <code>DB_ETERNAL.F_BANK.BRANCH</code>. 「branch」- 是否支行
     */
    @Override
    public FBankRecord setBranch(Boolean value) {
        set(9, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.F_BANK.BRANCH</code>. 「branch」- 是否支行
     */
    @Override
    public Boolean getBranch() {
        return (Boolean) get(9);
    }

    /**
     * Setter for <code>DB_ETERNAL.F_BANK.BANK_ID</code>. 「bankId」- 所属银行ID
     */
    @Override
    public FBankRecord setBankId(String value) {
        set(10, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.F_BANK.BANK_ID</code>. 「bankId」- 所属银行ID
     */
    @Override
    public String getBankId() {
        return (String) get(10);
    }

    /**
     * Setter for <code>DB_ETERNAL.F_BANK.LOCATION_ID</code>. 「locationId」-
     * 银行地址对应信息
     */
    @Override
    public FBankRecord setLocationId(String value) {
        set(11, value);
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.F_BANK.LOCATION_ID</code>. 「locationId」-
     * 银行地址对应信息
     */
    @Override
    public String getLocationId() {
        return (String) get(11);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /**
     * Getter for <code>DB_ETERNAL.F_BANK.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, String, String, String, String, Boolean, String, String, String, String, Boolean, String, LocalDateTime, String, LocalDateTime, String> fieldsRow() {
        return (Row20) super.fieldsRow();
    }

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

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

    @Override
    public Field<String> field2() {
        return FBank.F_BANK.NAME;
    }

    @Override
    public Field<String> field3() {
        return FBank.F_BANK.CODE;
    }

    @Override
    public Field<String> field4() {
        return FBank.F_BANK.ALIAS;
    }

    @Override
    public Field<String> field5() {
        return FBank.F_BANK.LOGO;
    }

    @Override
    public Field<String> field6() {
        return FBank.F_BANK.WEBSITE;
    }

    @Override
    public Field<String> field7() {
        return FBank.F_BANK.COMMENT;
    }

    @Override
    public Field<String> field8() {
        return FBank.F_BANK.BRANCH_NAME;
    }

    @Override
    public Field<String> field9() {
        return FBank.F_BANK.BRANCH_CODE;
    }

    @Override
    public Field<Boolean> field10() {
        return FBank.F_BANK.BRANCH;
    }

    @Override
    public Field<String> field11() {
        return FBank.F_BANK.BANK_ID;
    }

    @Override
    public Field<String> field12() {
        return FBank.F_BANK.LOCATION_ID;
    }

    @Override
    public Field<String> field13() {
        return FBank.F_BANK.SIGMA;
    }

    @Override
    public Field<String> field14() {
        return FBank.F_BANK.LANGUAGE;
    }

    @Override
    public Field<Boolean> field15() {
        return FBank.F_BANK.ACTIVE;
    }

    @Override
    public Field<String> field16() {
        return FBank.F_BANK.METADATA;
    }

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

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

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

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

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

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

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

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

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

    @Override
    public String component6() {
        return getWebsite();
    }

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

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

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

    @Override
    public Boolean component10() {
        return getBranch();
    }

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

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

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

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

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

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

    @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 getName();
    }

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

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

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

    @Override
    public String value6() {
        return getWebsite();
    }

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

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

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

    @Override
    public Boolean value10() {
        return getBranch();
    }

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

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

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

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

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

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

    @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 FBankRecord value1(String value) {
        setKey(value);
        return this;
    }

    @Override
    public FBankRecord value2(String value) {
        setName(value);
        return this;
    }

    @Override
    public FBankRecord value3(String value) {
        setCode(value);
        return this;
    }

    @Override
    public FBankRecord value4(String value) {
        setAlias(value);
        return this;
    }

    @Override
    public FBankRecord value5(String value) {
        setLogo(value);
        return this;
    }

    @Override
    public FBankRecord value6(String value) {
        setWebsite(value);
        return this;
    }

    @Override
    public FBankRecord value7(String value) {
        setComment(value);
        return this;
    }

    @Override
    public FBankRecord value8(String value) {
        setBranchName(value);
        return this;
    }

    @Override
    public FBankRecord value9(String value) {
        setBranchCode(value);
        return this;
    }

    @Override
    public FBankRecord value10(Boolean value) {
        setBranch(value);
        return this;
    }

    @Override
    public FBankRecord value11(String value) {
        setBankId(value);
        return this;
    }

    @Override
    public FBankRecord value12(String value) {
        setLocationId(value);
        return this;
    }

    @Override
    public FBankRecord value13(String value) {
        setSigma(value);
        return this;
    }

    @Override
    public FBankRecord value14(String value) {
        setLanguage(value);
        return this;
    }

    @Override
    public FBankRecord value15(Boolean value) {
        setActive(value);
        return this;
    }

    @Override
    public FBankRecord value16(String value) {
        setMetadata(value);
        return this;
    }

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

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

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

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

    @Override
    public FBankRecord values(String value1, String value2, String value3, String value4, String value5, String value6, String value7, String value8, String value9, Boolean value10, String value11, String value12, String value13, String value14, Boolean 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(IFBank from) {
        setKey(from.getKey());
        setName(from.getName());
        setCode(from.getCode());
        setAlias(from.getAlias());
        setLogo(from.getLogo());
        setWebsite(from.getWebsite());
        setComment(from.getComment());
        setBranchName(from.getBranchName());
        setBranchCode(from.getBranchCode());
        setBranch(from.getBranch());
        setBankId(from.getBankId());
        setLocationId(from.getLocationId());
        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 IFBank> E into(E into) {
        into.from(this);
        return into;
    }

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

    /**
     * Create a detached FBankRecord
     */
    public FBankRecord() {
        super(FBank.F_BANK);
    }

    /**
     * Create a detached, initialised FBankRecord
     */
    public FBankRecord(String key, String name, String code, String alias, String logo, String website, String comment, String branchName, String branchCode, Boolean branch, String bankId, String locationId, String sigma, String language, Boolean active, String metadata, LocalDateTime createdAt, String createdBy, LocalDateTime updatedAt, String updatedBy) {
        super(FBank.F_BANK);

        setKey(key);
        setName(name);
        setCode(code);
        setAlias(alias);
        setLogo(logo);
        setWebsite(website);
        setComment(comment);
        setBranchName(branchName);
        setBranchCode(branchCode);
        setBranch(branch);
        setBankId(bankId);
        setLocationId(locationId);
        setSigma(sigma);
        setLanguage(language);
        setActive(active);
        setMetadata(metadata);
        setCreatedAt(createdAt);
        setCreatedBy(createdBy);
        setUpdatedAt(updatedAt);
        setUpdatedBy(updatedBy);
    }

    /**
     * Create a detached, initialised FBankRecord
     */
    public FBankRecord(cn.vertxup.fm.domain.tables.pojos.FBank value) {
        super(FBank.F_BANK);

        if (value != null) {
            setKey(value.getKey());
            setName(value.getName());
            setCode(value.getCode());
            setAlias(value.getAlias());
            setLogo(value.getLogo());
            setWebsite(value.getWebsite());
            setComment(value.getComment());
            setBranchName(value.getBranchName());
            setBranchCode(value.getBranchCode());
            setBranch(value.getBranch());
            setBankId(value.getBankId());
            setLocationId(value.getLocationId());
            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 FBankRecord(io.vertx.core.json.JsonObject json) {
                this();
                fromJson(json);
        }
}
