/*
 * This file is generated by jOOQ.
 */
package ru.micord.ervu_dashboard.db_beans.ervu_dashboard.tables.records;


import java.sql.Date;
import java.util.UUID;

import org.jooq.Record1;
import org.jooq.impl.UpdatableRecordImpl;

import ru.micord.ervu_dashboard.db_beans.ervu_dashboard.tables.Deputy;


/**
 * сведения о гражданах, избранных депутатами/зарегистрированных кандидатами на
 * участие в выборах
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class DeputyRecord extends UpdatableRecordImpl<DeputyRecord> {

    private static final long serialVersionUID = 1L;

    /**
     * Setter for <code>ervu_dashboard.deputy.deputy_id</code>.
     */
    public void setDeputyId(Long value) {
        set(0, value);
    }

    /**
     * Getter for <code>ervu_dashboard.deputy.deputy_id</code>.
     */
    public Long getDeputyId() {
        return (Long) get(0);
    }

    /**
     * Setter for <code>ervu_dashboard.deputy.recruit_id</code>. ссылка на
     * гражданина (citizen)
     */
    public void setRecruitId(UUID value) {
        set(1, value);
    }

    /**
     * Getter for <code>ervu_dashboard.deputy.recruit_id</code>. ссылка на
     * гражданина (citizen)
     */
    public UUID getRecruitId() {
        return (UUID) get(1);
    }

    /**
     * Setter for <code>ervu_dashboard.deputy.deputy</code>. является
     * депутатом(true)/кандидатом на участие в выборах(false)
     */
    public void setDeputy(Boolean value) {
        set(2, value);
    }

    /**
     * Getter for <code>ervu_dashboard.deputy.deputy</code>. является
     * депутатом(true)/кандидатом на участие в выборах(false)
     */
    public Boolean getDeputy() {
        return (Boolean) get(2);
    }

    /**
     * Setter for <code>ervu_dashboard.deputy.information</code>. сведения об
     * избрании гражданина депутатом/сведения о регистрации кандидатом на
     * выборах
     */
    public void setInformation(String value) {
        set(3, value);
    }

    /**
     * Getter for <code>ervu_dashboard.deputy.information</code>. сведения об
     * избрании гражданина депутатом/сведения о регистрации кандидатом на
     * выборах
     */
    public String getInformation() {
        return (String) get(3);
    }

    /**
     * Setter for <code>ervu_dashboard.deputy.end_date</code>. дата досрочного
     * прекращения полномочий/снятия кандидатуры с выборов
     */
    public void setEndDate(Date value) {
        set(4, value);
    }

    /**
     * Getter for <code>ervu_dashboard.deputy.end_date</code>. дата досрочного
     * прекращения полномочий/снятия кандидатуры с выборов
     */
    public Date getEndDate() {
        return (Date) get(4);
    }

    /**
     * Setter for <code>ervu_dashboard.deputy.period_office</code>. срок
     * полномочий
     */
    public void setPeriodOffice(String value) {
        set(5, value);
    }

    /**
     * Getter for <code>ervu_dashboard.deputy.period_office</code>. срок
     * полномочий
     */
    public String getPeriodOffice() {
        return (String) get(5);
    }

    /**
     * Setter for <code>ervu_dashboard.deputy.cancellation_date</code>. дата
     * аннулирования регистрации
     */
    public void setCancellationDate(Date value) {
        set(6, value);
    }

    /**
     * Getter for <code>ervu_dashboard.deputy.cancellation_date</code>. дата
     * аннулирования регистрации
     */
    public Date getCancellationDate() {
        return (Date) get(6);
    }

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

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

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

    /**
     * Create a detached DeputyRecord
     */
    public DeputyRecord() {
        super(Deputy.DEPUTY);
    }

    /**
     * Create a detached, initialised DeputyRecord
     */
    public DeputyRecord(Long deputyId, UUID recruitId, Boolean deputy, String information, Date endDate, String periodOffice, Date cancellationDate) {
        super(Deputy.DEPUTY);

        setDeputyId(deputyId);
        setRecruitId(recruitId);
        setDeputy(deputy);
        setInformation(information);
        setEndDate(endDate);
        setPeriodOffice(periodOffice);
        setCancellationDate(cancellationDate);
        resetChangedOnNotNull();
    }
}
