/*
 * This file is generated by jOOQ.
 */
package io.github.quickmsg.persistent.tables.tables.records;


import io.github.quickmsg.persistent.tables.tables.SmqttSession;

import java.time.LocalDateTime;

import org.jooq.Field;
import org.jooq.Record6;
import org.jooq.Row6;
import org.jooq.impl.TableRecordImpl;


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

    private static final long serialVersionUID = 1L;


    public void setTopic(String value) {
        set(0, value);
    }


    public String getTopic() {
        return (String) get(0);
    }


    public void setClientId(String value) {
        set(1, value);
    }


    public String getClientId() {
        return (String) get(1);
    }


    public void setQos(Integer value) {
        set(2, value);
    }


    public Integer getQos() {
        return (Integer) get(2);
    }


    public void setRetain(Boolean value) {
        set(3, value);
    }


    public Boolean getRetain() {
        return (Boolean) get(3);
    }


    public void setBody(String value) {
        set(4, value);
    }


    public String getBody() {
        return (String) get(4);
    }


    public void setCreateTime(LocalDateTime value) {
        set(5, value);
    }


    public LocalDateTime getCreateTime() {
        return (LocalDateTime) get(5);
    }

    // -------------------------------------------------------------------------
    // Record6 type implementation
    // -------------------------------------------------------------------------

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

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

    @Override
    public Field<String> field1() {
        return SmqttSession.SMQTT_SESSION.TOPIC;
    }

    @Override
    public Field<String> field2() {
        return SmqttSession.SMQTT_SESSION.CLIENT_ID;
    }

    @Override
    public Field<Integer> field3() {
        return SmqttSession.SMQTT_SESSION.QOS;
    }

    @Override
    public Field<Boolean> field4() {
        return SmqttSession.SMQTT_SESSION.RETAIN;
    }

    @Override
    public Field<String> field5() {
        return SmqttSession.SMQTT_SESSION.BODY;
    }

    @Override
    public Field<LocalDateTime> field6() {
        return SmqttSession.SMQTT_SESSION.CREATE_TIME;
    }

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

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

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

    @Override
    public Boolean component4() {
        return getRetain();
    }

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

    @Override
    public LocalDateTime component6() {
        return getCreateTime();
    }

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

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

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

    @Override
    public Boolean value4() {
        return getRetain();
    }

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

    @Override
    public LocalDateTime value6() {
        return getCreateTime();
    }

    @Override
    public SmqttSessionRecord value1(String value) {
        setTopic(value);
        return this;
    }

    @Override
    public SmqttSessionRecord value2(String value) {
        setClientId(value);
        return this;
    }

    @Override
    public SmqttSessionRecord value3(Integer value) {
        setQos(value);
        return this;
    }

    @Override
    public SmqttSessionRecord value4(Boolean value) {
        setRetain(value);
        return this;
    }

    @Override
    public SmqttSessionRecord value5(String value) {
        setBody(value);
        return this;
    }

    @Override
    public SmqttSessionRecord value6(LocalDateTime value) {
        setCreateTime(value);
        return this;
    }

    @Override
    public SmqttSessionRecord values(String value1, String value2, Integer value3, Boolean value4, String value5, LocalDateTime value6) {
        value1(value1);
        value2(value2);
        value3(value3);
        value4(value4);
        value5(value5);
        value6(value6);
        return this;
    }

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


    public SmqttSessionRecord() {
        super(SmqttSession.SMQTT_SESSION);
    }


    public SmqttSessionRecord(String topic, String clientId, Integer qos, Boolean retain, String body, LocalDateTime createTime) {
        super(SmqttSession.SMQTT_SESSION);

        setTopic(topic);
        setClientId(clientId);
        setQos(qos);
        setRetain(retain);
        setBody(body);
        setCreateTime(createTime);
    }
}
