/*
 * This file is generated by jOOQ.
*/
package com.stubbornjava.cms.server.generated.tables.records;


import com.stubbornjava.cms.server.generated.tables.PostTagTable;

import java.time.LocalDateTime;

import javax.annotation.Generated;

import org.jooq.Field;
import org.jooq.Record1;
import org.jooq.Record4;
import org.jooq.Row4;
import org.jooq.impl.UpdatableRecordImpl;


/**
 * This class is generated by jOOQ.
 */
@Generated(
    value = {
        "http://www.jooq.org",
        "jOOQ version:3.10.7"
    },
    comments = "This class is generated by jOOQ"
)
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class PostTagRecord extends UpdatableRecordImpl<PostTagRecord> implements Record4<Integer, Integer, String, LocalDateTime> {

    private static final long serialVersionUID = 1702429170;

    /**
     * Setter for <code>sj_cms.post_tag.post_tag_id</code>.
     */
    public void setPostTagId(Integer value) {
        set(0, value);
    }

    /**
     * Getter for <code>sj_cms.post_tag.post_tag_id</code>.
     */
    public Integer getPostTagId() {
        return (Integer) get(0);
    }

    /**
     * Setter for <code>sj_cms.post_tag.app_id</code>.
     */
    public void setAppId(Integer value) {
        set(1, value);
    }

    /**
     * Getter for <code>sj_cms.post_tag.app_id</code>.
     */
    public Integer getAppId() {
        return (Integer) get(1);
    }

    /**
     * Setter for <code>sj_cms.post_tag.name</code>.
     */
    public void setName(String value) {
        set(2, value);
    }

    /**
     * Getter for <code>sj_cms.post_tag.name</code>.
     */
    public String getName() {
        return (String) get(2);
    }

    /**
     * Setter for <code>sj_cms.post_tag.last_update_ts</code>.
     */
    public void setLastUpdateTs(LocalDateTime value) {
        set(3, value);
    }

    /**
     * Getter for <code>sj_cms.post_tag.last_update_ts</code>.
     */
    public LocalDateTime getLastUpdateTs() {
        return (LocalDateTime) get(3);
    }

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

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

    // -------------------------------------------------------------------------
    // Record4 type implementation
    // -------------------------------------------------------------------------

    /**
     * {@inheritDoc}
     */
    @Override
    public Row4<Integer, Integer, String, LocalDateTime> fieldsRow() {
        return (Row4) super.fieldsRow();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Row4<Integer, Integer, String, LocalDateTime> valuesRow() {
        return (Row4) super.valuesRow();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Field<Integer> field1() {
        return PostTagTable.POST_TAG.POST_TAG_ID;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Field<Integer> field2() {
        return PostTagTable.POST_TAG.APP_ID;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Field<String> field3() {
        return PostTagTable.POST_TAG.NAME;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Field<LocalDateTime> field4() {
        return PostTagTable.POST_TAG.LAST_UPDATE_TS;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Integer component1() {
        return getPostTagId();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Integer component2() {
        return getAppId();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String component3() {
        return getName();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public LocalDateTime component4() {
        return getLastUpdateTs();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Integer value1() {
        return getPostTagId();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Integer value2() {
        return getAppId();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String value3() {
        return getName();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public LocalDateTime value4() {
        return getLastUpdateTs();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public PostTagRecord value1(Integer value) {
        setPostTagId(value);
        return this;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public PostTagRecord value2(Integer value) {
        setAppId(value);
        return this;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public PostTagRecord value3(String value) {
        setName(value);
        return this;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public PostTagRecord value4(LocalDateTime value) {
        setLastUpdateTs(value);
        return this;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public PostTagRecord values(Integer value1, Integer value2, String value3, LocalDateTime value4) {
        value1(value1);
        value2(value2);
        value3(value3);
        value4(value4);
        return this;
    }

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

    /**
     * Create a detached PostTagRecord
     */
    public PostTagRecord() {
        super(PostTagTable.POST_TAG);
    }

    /**
     * Create a detached, initialised PostTagRecord
     */
    public PostTagRecord(Integer postTagId, Integer appId, String name, LocalDateTime lastUpdateTs) {
        super(PostTagTable.POST_TAG);

        set(0, postTagId);
        set(1, appId);
        set(2, name);
        set(3, lastUpdateTs);
    }
}
