/*
 * 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.Punishment;


/**
 * сведения об уголовном преследовании и вынесенном приговоре
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class PunishmentRecord extends UpdatableRecordImpl<PunishmentRecord> {

    private static final long serialVersionUID = 1L;

    /**
     * Setter for <code>ervu_dashboard.punishment.punishment_id</code>.
     */
    public void setPunishmentId(Long value) {
        set(0, value);
    }

    /**
     * Getter for <code>ervu_dashboard.punishment.punishment_id</code>.
     */
    public Long getPunishmentId() {
        return (Long) get(0);
    }

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

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

    /**
     * Setter for <code>ervu_dashboard.punishment.sentence</code>. срок или
     * размер наказания
     */
    public void setSentence(String value) {
        set(2, value);
    }

    /**
     * Getter for <code>ervu_dashboard.punishment.sentence</code>. срок или
     * размер наказания
     */
    public String getSentence() {
        return (String) get(2);
    }

    /**
     * Setter for <code>ervu_dashboard.punishment.sentence_changed</code>.
     * изменение срока или размера наказания
     */
    public void setSentenceChanged(String value) {
        set(3, value);
    }

    /**
     * Getter for <code>ervu_dashboard.punishment.sentence_changed</code>.
     * изменение срока или размера наказания
     */
    public String getSentenceChanged() {
        return (String) get(3);
    }

    /**
     * Setter for <code>ervu_dashboard.punishment.sentense_date</code>. дата
     * вынесения обвинительного приговора
     */
    public void setSentenseDate(Date value) {
        set(4, value);
    }

    /**
     * Getter for <code>ervu_dashboard.punishment.sentense_date</code>. дата
     * вынесения обвинительного приговора
     */
    public Date getSentenseDate() {
        return (Date) get(4);
    }

    /**
     * Setter for <code>ervu_dashboard.punishment.authority_name</code>.
     * наименование суда, вынесшего приговор
     */
    public void setAuthorityName(String value) {
        set(5, value);
    }

    /**
     * Getter for <code>ervu_dashboard.punishment.authority_name</code>.
     * наименование суда, вынесшего приговор
     */
    public String getAuthorityName() {
        return (String) get(5);
    }

    /**
     * Setter for <code>ervu_dashboard.punishment.law_point</code>. пункт,
     * часть, статья УК РФ
     */
    public void setLawPoint(String value) {
        set(6, value);
    }

    /**
     * Getter for <code>ervu_dashboard.punishment.law_point</code>. пункт,
     * часть, статья УК РФ
     */
    public String getLawPoint() {
        return (String) get(6);
    }

    /**
     * Setter for <code>ervu_dashboard.punishment.punishment_type</code>. вид
     * наказания
     */
    public void setPunishmentType(String value) {
        set(7, value);
    }

    /**
     * Getter for <code>ervu_dashboard.punishment.punishment_type</code>. вид
     * наказания
     */
    public String getPunishmentType() {
        return (String) get(7);
    }

    /**
     * Setter for <code>ervu_dashboard.punishment.punishment_code</code>. код
     * вида наказания
     */
    public void setPunishmentCode(String value) {
        set(8, value);
    }

    /**
     * Getter for <code>ervu_dashboard.punishment.punishment_code</code>. код
     * вида наказания
     */
    public String getPunishmentCode() {
        return (String) get(8);
    }

    /**
     * Setter for <code>ervu_dashboard.punishment.sentence_place</code>.
     * наименование и адрес места отбывания наказания
     */
    public void setSentencePlace(String value) {
        set(9, value);
    }

    /**
     * Getter for <code>ervu_dashboard.punishment.sentence_place</code>.
     * наименование и адрес места отбывания наказания
     */
    public String getSentencePlace() {
        return (String) get(9);
    }

    /**
     * Setter for <code>ervu_dashboard.punishment.start_date</code>. дата начала
     * срока отбывания наказания
     */
    public void setStartDate(Date value) {
        set(10, value);
    }

    /**
     * Getter for <code>ervu_dashboard.punishment.start_date</code>. дата начала
     * срока отбывания наказания
     */
    public Date getStartDate() {
        return (Date) get(10);
    }

    /**
     * Setter for <code>ervu_dashboard.punishment.planned_date</code>. плановая
     * дата отбытия
     */
    public void setPlannedDate(Date value) {
        set(11, value);
    }

    /**
     * Getter for <code>ervu_dashboard.punishment.planned_date</code>. плановая
     * дата отбытия
     */
    public Date getPlannedDate() {
        return (Date) get(11);
    }

    /**
     * Setter for <code>ervu_dashboard.punishment.release_date</code>. дата
     * освобождения
     */
    public void setReleaseDate(Date value) {
        set(12, value);
    }

    /**
     * Getter for <code>ervu_dashboard.punishment.release_date</code>. дата
     * освобождения
     */
    public Date getReleaseDate() {
        return (Date) get(12);
    }

    /**
     * Setter for <code>ervu_dashboard.punishment.release_reason</code>.
     * основание освобождения
     */
    public void setReleaseReason(String value) {
        set(13, value);
    }

    /**
     * Getter for <code>ervu_dashboard.punishment.release_reason</code>.
     * основание освобождения
     */
    public String getReleaseReason() {
        return (String) get(13);
    }

    /**
     * Setter for <code>ervu_dashboard.punishment.mandatory_work</code>. признак
     * отбывания наказания в виде обязательных работ
     */
    public void setMandatoryWork(Boolean value) {
        set(14, value);
    }

    /**
     * Getter for <code>ervu_dashboard.punishment.mandatory_work</code>. признак
     * отбывания наказания в виде обязательных работ
     */
    public Boolean getMandatoryWork() {
        return (Boolean) get(14);
    }

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

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

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

    /**
     * Create a detached PunishmentRecord
     */
    public PunishmentRecord() {
        super(Punishment.PUNISHMENT);
    }

    /**
     * Create a detached, initialised PunishmentRecord
     */
    public PunishmentRecord(Long punishmentId, UUID recruitId, String sentence, String sentenceChanged, Date sentenseDate, String authorityName, String lawPoint, String punishmentType, String punishmentCode, String sentencePlace, Date startDate, Date plannedDate, Date releaseDate, String releaseReason, Boolean mandatoryWork) {
        super(Punishment.PUNISHMENT);

        setPunishmentId(punishmentId);
        setRecruitId(recruitId);
        setSentence(sentence);
        setSentenceChanged(sentenceChanged);
        setSentenseDate(sentenseDate);
        setAuthorityName(authorityName);
        setLawPoint(lawPoint);
        setPunishmentType(punishmentType);
        setPunishmentCode(punishmentCode);
        setSentencePlace(sentencePlace);
        setStartDate(startDate);
        setPlannedDate(plannedDate);
        setReleaseDate(releaseDate);
        setReleaseReason(releaseReason);
        setMandatoryWork(mandatoryWork);
        resetChangedOnNotNull();
    }
}
