/**
 * This class is generated by jOOQ
 */
package edu.kit.ipd.crowdcontrol.objectservice.database.model.tables.records;


import edu.kit.ipd.crowdcontrol.objectservice.database.model.enums.WorkerBalanceType;
import edu.kit.ipd.crowdcontrol.objectservice.database.model.tables.WorkerBalance;

import java.sql.Timestamp;

import javax.annotation.Generated;

import org.jooq.Field;
import org.jooq.Record1;
import org.jooq.Record7;
import org.jooq.Row7;
import org.jooq.impl.UpdatableRecordImpl;


/**
 * This class is generated by jOOQ.
 */
@Generated(
	value = {
		"http://www.jooq.org",
		"jOOQ version:3.7.3"
	},
	comments = "This class is generated by jOOQ"
)
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class WorkerBalanceRecord extends UpdatableRecordImpl<WorkerBalanceRecord> implements Record7<Integer, Integer, Integer, Integer, Integer, WorkerBalanceType, Timestamp> {

	private static final long serialVersionUID = -1514884877;

	/**
	 * Setter for <code>crowdcontrol.Worker_Balance.id_worker_balance</code>.
	 */
	public void setIdWorkerBalance(Integer value) {
		setValue(0, value);
	}

	/**
	 * Getter for <code>crowdcontrol.Worker_Balance.id_worker_balance</code>.
	 */
	public Integer getIdWorkerBalance() {
		return (Integer) getValue(0);
	}

	/**
	 * Setter for <code>crowdcontrol.Worker_Balance.transaction_value</code>.
	 */
	public void setTransactionValue(Integer value) {
		setValue(1, value);
	}

	/**
	 * Getter for <code>crowdcontrol.Worker_Balance.transaction_value</code>.
	 */
	public Integer getTransactionValue() {
		return (Integer) getValue(1);
	}

	/**
	 * Setter for <code>crowdcontrol.Worker_Balance.worker</code>.
	 */
	public void setWorker(Integer value) {
		setValue(2, value);
	}

	/**
	 * Getter for <code>crowdcontrol.Worker_Balance.worker</code>.
	 */
	public Integer getWorker() {
		return (Integer) getValue(2);
	}

	/**
	 * Setter for <code>crowdcontrol.Worker_Balance.experiment</code>.
	 */
	public void setExperiment(Integer value) {
		setValue(3, value);
	}

	/**
	 * Getter for <code>crowdcontrol.Worker_Balance.experiment</code>.
	 */
	public Integer getExperiment() {
		return (Integer) getValue(3);
	}

	/**
	 * Setter for <code>crowdcontrol.Worker_Balance.gift_code</code>.
	 */
	public void setGiftCode(Integer value) {
		setValue(4, value);
	}

	/**
	 * Getter for <code>crowdcontrol.Worker_Balance.gift_code</code>.
	 */
	public Integer getGiftCode() {
		return (Integer) getValue(4);
	}

	/**
	 * Setter for <code>crowdcontrol.Worker_Balance.type</code>.
	 */
	public void setType(WorkerBalanceType value) {
		setValue(5, value);
	}

	/**
	 * Getter for <code>crowdcontrol.Worker_Balance.type</code>.
	 */
	public WorkerBalanceType getType() {
		return (WorkerBalanceType) getValue(5);
	}

	/**
	 * Setter for <code>crowdcontrol.Worker_Balance.timestamp</code>.
	 */
	public void setTimestamp(Timestamp value) {
		setValue(6, value);
	}

	/**
	 * Getter for <code>crowdcontrol.Worker_Balance.timestamp</code>.
	 */
	public Timestamp getTimestamp() {
		return (Timestamp) getValue(6);
	}

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

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

	// -------------------------------------------------------------------------
	// Record7 type implementation
	// -------------------------------------------------------------------------

	/**
	 * {@inheritDoc}
	 */
	@Override
	public Row7<Integer, Integer, Integer, Integer, Integer, WorkerBalanceType, Timestamp> fieldsRow() {
		return (Row7) super.fieldsRow();
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public Row7<Integer, Integer, Integer, Integer, Integer, WorkerBalanceType, Timestamp> valuesRow() {
		return (Row7) super.valuesRow();
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public Field<Integer> field1() {
		return WorkerBalance.WORKER_BALANCE.ID_WORKER_BALANCE;
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public Field<Integer> field2() {
		return WorkerBalance.WORKER_BALANCE.TRANSACTION_VALUE;
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public Field<Integer> field3() {
		return WorkerBalance.WORKER_BALANCE.WORKER;
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public Field<Integer> field4() {
		return WorkerBalance.WORKER_BALANCE.EXPERIMENT;
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public Field<Integer> field5() {
		return WorkerBalance.WORKER_BALANCE.GIFT_CODE;
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public Field<WorkerBalanceType> field6() {
		return WorkerBalance.WORKER_BALANCE.TYPE;
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public Field<Timestamp> field7() {
		return WorkerBalance.WORKER_BALANCE.TIMESTAMP;
	}

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

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

	/**
	 * {@inheritDoc}
	 */
	@Override
	public Integer value3() {
		return getWorker();
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public Integer value4() {
		return getExperiment();
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public Integer value5() {
		return getGiftCode();
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public WorkerBalanceType value6() {
		return getType();
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public Timestamp value7() {
		return getTimestamp();
	}

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

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

	/**
	 * {@inheritDoc}
	 */
	@Override
	public WorkerBalanceRecord value3(Integer value) {
		setWorker(value);
		return this;
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public WorkerBalanceRecord value4(Integer value) {
		setExperiment(value);
		return this;
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public WorkerBalanceRecord value5(Integer value) {
		setGiftCode(value);
		return this;
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public WorkerBalanceRecord value6(WorkerBalanceType value) {
		setType(value);
		return this;
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public WorkerBalanceRecord value7(Timestamp value) {
		setTimestamp(value);
		return this;
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public WorkerBalanceRecord values(Integer value1, Integer value2, Integer value3, Integer value4, Integer value5, WorkerBalanceType value6, Timestamp value7) {
		value1(value1);
		value2(value2);
		value3(value3);
		value4(value4);
		value5(value5);
		value6(value6);
		value7(value7);
		return this;
	}

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

	/**
	 * Create a detached WorkerBalanceRecord
	 */
	public WorkerBalanceRecord() {
		super(WorkerBalance.WORKER_BALANCE);
	}

	/**
	 * Create a detached, initialised WorkerBalanceRecord
	 */
	public WorkerBalanceRecord(Integer idWorkerBalance, Integer transactionValue, Integer worker, Integer experiment, Integer giftCode, WorkerBalanceType type, Timestamp timestamp) {
		super(WorkerBalance.WORKER_BALANCE);

		setValue(0, idWorkerBalance);
		setValue(1, transactionValue);
		setValue(2, worker);
		setValue(3, experiment);
		setValue(4, giftCode);
		setValue(5, type);
		setValue(6, timestamp);
	}
}
