/*
 * This file is generated by jOOQ.
 */
package com.databasir.dao.tables.records;


import com.databasir.dao.tables.TableColumnDocument;
import com.databasir.dao.tables.pojos.TableColumnDocumentPojo;

import java.time.LocalDateTime;

import org.jooq.Field;
import org.jooq.Record1;
import org.jooq.Record13;
import org.jooq.Row13;
import org.jooq.impl.UpdatableRecordImpl;


/**
 * This class is generated by jOOQ.
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDocumentRecord> implements Record13<Integer, Integer, Integer, String, String, String, String, Integer, Integer, Boolean, String, String, LocalDateTime> {

    private static final long serialVersionUID = 1L;

    /**
     * Setter for <code>databasir.table_column_document.id</code>.
     */
    public void setId(Integer value) {
        set(0, value);
    }

    /**
     * Getter for <code>databasir.table_column_document.id</code>.
     */
    public Integer getId() {
        return (Integer) get(0);
    }

    /**
     * Setter for
     * <code>databasir.table_column_document.table_document_id</code>.
     */
    public void setTableDocumentId(Integer value) {
        set(1, value);
    }

    /**
     * Getter for
     * <code>databasir.table_column_document.table_document_id</code>.
     */
    public Integer getTableDocumentId() {
        return (Integer) get(1);
    }

    /**
     * Setter for
     * <code>databasir.table_column_document.database_document_id</code>.
     */
    public void setDatabaseDocumentId(Integer value) {
        set(2, value);
    }

    /**
     * Getter for
     * <code>databasir.table_column_document.database_document_id</code>.
     */
    public Integer getDatabaseDocumentId() {
        return (Integer) get(2);
    }

    /**
     * Setter for <code>databasir.table_column_document.name</code>.
     */
    public void setName(String value) {
        set(3, value);
    }

    /**
     * Getter for <code>databasir.table_column_document.name</code>.
     */
    public String getName() {
        return (String) get(3);
    }

    /**
     * Setter for <code>databasir.table_column_document.type</code>.
     */
    public void setType(String value) {
        set(4, value);
    }

    /**
     * Getter for <code>databasir.table_column_document.type</code>.
     */
    public String getType() {
        return (String) get(4);
    }

    /**
     * Setter for <code>databasir.table_column_document.comment</code>.
     */
    public void setComment(String value) {
        set(5, value);
    }

    /**
     * Getter for <code>databasir.table_column_document.comment</code>.
     */
    public String getComment() {
        return (String) get(5);
    }

    /**
     * Setter for <code>databasir.table_column_document.default_value</code>.
     */
    public void setDefaultValue(String value) {
        set(6, value);
    }

    /**
     * Getter for <code>databasir.table_column_document.default_value</code>.
     */
    public String getDefaultValue() {
        return (String) get(6);
    }

    /**
     * Setter for <code>databasir.table_column_document.size</code>.
     */
    public void setSize(Integer value) {
        set(7, value);
    }

    /**
     * Getter for <code>databasir.table_column_document.size</code>.
     */
    public Integer getSize() {
        return (Integer) get(7);
    }

    /**
     * Setter for <code>databasir.table_column_document.decimal_digits</code>.
     */
    public void setDecimalDigits(Integer value) {
        set(8, value);
    }

    /**
     * Getter for <code>databasir.table_column_document.decimal_digits</code>.
     */
    public Integer getDecimalDigits() {
        return (Integer) get(8);
    }

    /**
     * Setter for <code>databasir.table_column_document.is_primary_key</code>.
     */
    public void setIsPrimaryKey(Boolean value) {
        set(9, value);
    }

    /**
     * Getter for <code>databasir.table_column_document.is_primary_key</code>.
     */
    public Boolean getIsPrimaryKey() {
        return (Boolean) get(9);
    }

    /**
     * Setter for <code>databasir.table_column_document.nullable</code>. YES,
     * NO, UNKNOWN
     */
    public void setNullable(String value) {
        set(10, value);
    }

    /**
     * Getter for <code>databasir.table_column_document.nullable</code>. YES,
     * NO, UNKNOWN
     */
    public String getNullable() {
        return (String) get(10);
    }

    /**
     * Setter for <code>databasir.table_column_document.auto_increment</code>.
     * YES, NO, UNKNOWN
     */
    public void setAutoIncrement(String value) {
        set(11, value);
    }

    /**
     * Getter for <code>databasir.table_column_document.auto_increment</code>.
     * YES, NO, UNKNOWN
     */
    public String getAutoIncrement() {
        return (String) get(11);
    }

    /**
     * Setter for <code>databasir.table_column_document.create_at</code>.
     */
    public void setCreateAt(LocalDateTime value) {
        set(12, value);
    }

    /**
     * Getter for <code>databasir.table_column_document.create_at</code>.
     */
    public LocalDateTime getCreateAt() {
        return (LocalDateTime) get(12);
    }

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

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

    // -------------------------------------------------------------------------
    // Record13 type implementation
    // -------------------------------------------------------------------------

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

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

    @Override
    public Field<Integer> field1() {
        return TableColumnDocument.TABLE_COLUMN_DOCUMENT.ID;
    }

    @Override
    public Field<Integer> field2() {
        return TableColumnDocument.TABLE_COLUMN_DOCUMENT.TABLE_DOCUMENT_ID;
    }

    @Override
    public Field<Integer> field3() {
        return TableColumnDocument.TABLE_COLUMN_DOCUMENT.DATABASE_DOCUMENT_ID;
    }

    @Override
    public Field<String> field4() {
        return TableColumnDocument.TABLE_COLUMN_DOCUMENT.NAME;
    }

    @Override
    public Field<String> field5() {
        return TableColumnDocument.TABLE_COLUMN_DOCUMENT.TYPE;
    }

    @Override
    public Field<String> field6() {
        return TableColumnDocument.TABLE_COLUMN_DOCUMENT.COMMENT;
    }

    @Override
    public Field<String> field7() {
        return TableColumnDocument.TABLE_COLUMN_DOCUMENT.DEFAULT_VALUE;
    }

    @Override
    public Field<Integer> field8() {
        return TableColumnDocument.TABLE_COLUMN_DOCUMENT.SIZE;
    }

    @Override
    public Field<Integer> field9() {
        return TableColumnDocument.TABLE_COLUMN_DOCUMENT.DECIMAL_DIGITS;
    }

    @Override
    public Field<Boolean> field10() {
        return TableColumnDocument.TABLE_COLUMN_DOCUMENT.IS_PRIMARY_KEY;
    }

    @Override
    public Field<String> field11() {
        return TableColumnDocument.TABLE_COLUMN_DOCUMENT.NULLABLE;
    }

    @Override
    public Field<String> field12() {
        return TableColumnDocument.TABLE_COLUMN_DOCUMENT.AUTO_INCREMENT;
    }

    @Override
    public Field<LocalDateTime> field13() {
        return TableColumnDocument.TABLE_COLUMN_DOCUMENT.CREATE_AT;
    }

    @Override
    public Integer component1() {
        return getId();
    }

    @Override
    public Integer component2() {
        return getTableDocumentId();
    }

    @Override
    public Integer component3() {
        return getDatabaseDocumentId();
    }

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

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

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

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

    @Override
    public Integer component8() {
        return getSize();
    }

    @Override
    public Integer component9() {
        return getDecimalDigits();
    }

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

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

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

    @Override
    public LocalDateTime component13() {
        return getCreateAt();
    }

    @Override
    public Integer value1() {
        return getId();
    }

    @Override
    public Integer value2() {
        return getTableDocumentId();
    }

    @Override
    public Integer value3() {
        return getDatabaseDocumentId();
    }

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

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

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

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

    @Override
    public Integer value8() {
        return getSize();
    }

    @Override
    public Integer value9() {
        return getDecimalDigits();
    }

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

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

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

    @Override
    public LocalDateTime value13() {
        return getCreateAt();
    }

    @Override
    public TableColumnDocumentRecord value1(Integer value) {
        setId(value);
        return this;
    }

    @Override
    public TableColumnDocumentRecord value2(Integer value) {
        setTableDocumentId(value);
        return this;
    }

    @Override
    public TableColumnDocumentRecord value3(Integer value) {
        setDatabaseDocumentId(value);
        return this;
    }

    @Override
    public TableColumnDocumentRecord value4(String value) {
        setName(value);
        return this;
    }

    @Override
    public TableColumnDocumentRecord value5(String value) {
        setType(value);
        return this;
    }

    @Override
    public TableColumnDocumentRecord value6(String value) {
        setComment(value);
        return this;
    }

    @Override
    public TableColumnDocumentRecord value7(String value) {
        setDefaultValue(value);
        return this;
    }

    @Override
    public TableColumnDocumentRecord value8(Integer value) {
        setSize(value);
        return this;
    }

    @Override
    public TableColumnDocumentRecord value9(Integer value) {
        setDecimalDigits(value);
        return this;
    }

    @Override
    public TableColumnDocumentRecord value10(Boolean value) {
        setIsPrimaryKey(value);
        return this;
    }

    @Override
    public TableColumnDocumentRecord value11(String value) {
        setNullable(value);
        return this;
    }

    @Override
    public TableColumnDocumentRecord value12(String value) {
        setAutoIncrement(value);
        return this;
    }

    @Override
    public TableColumnDocumentRecord value13(LocalDateTime value) {
        setCreateAt(value);
        return this;
    }

    @Override
    public TableColumnDocumentRecord values(Integer value1, Integer value2, Integer value3, String value4, String value5, String value6, String value7, Integer value8, Integer value9, Boolean value10, String value11, String value12, LocalDateTime value13) {
        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);
        return this;
    }

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

    /**
     * Create a detached TableColumnDocumentRecord
     */
    public TableColumnDocumentRecord() {
        super(TableColumnDocument.TABLE_COLUMN_DOCUMENT);
    }

    /**
     * Create a detached, initialised TableColumnDocumentRecord
     */
    public TableColumnDocumentRecord(Integer id, Integer tableDocumentId, Integer databaseDocumentId, String name, String type, String comment, String defaultValue, Integer size, Integer decimalDigits, Boolean isPrimaryKey, String nullable, String autoIncrement, LocalDateTime createAt) {
        super(TableColumnDocument.TABLE_COLUMN_DOCUMENT);

        setId(id);
        setTableDocumentId(tableDocumentId);
        setDatabaseDocumentId(databaseDocumentId);
        setName(name);
        setType(type);
        setComment(comment);
        setDefaultValue(defaultValue);
        setSize(size);
        setDecimalDigits(decimalDigits);
        setIsPrimaryKey(isPrimaryKey);
        setNullable(nullable);
        setAutoIncrement(autoIncrement);
        setCreateAt(createAt);
    }

    /**
     * Create a detached, initialised TableColumnDocumentRecord
     */
    public TableColumnDocumentRecord(TableColumnDocumentPojo value) {
        super(TableColumnDocument.TABLE_COLUMN_DOCUMENT);

        if (value != null) {
            setId(value.getId());
            setTableDocumentId(value.getTableDocumentId());
            setDatabaseDocumentId(value.getDatabaseDocumentId());
            setName(value.getName());
            setType(value.getType());
            setComment(value.getComment());
            setDefaultValue(value.getDefaultValue());
            setSize(value.getSize());
            setDecimalDigits(value.getDecimalDigits());
            setIsPrimaryKey(value.getIsPrimaryKey());
            setNullable(value.getNullable());
            setAutoIncrement(value.getAutoIncrement());
            setCreateAt(value.getCreateAt());
        }
    }
}
