package com.jasamedika.medifirst2000.entities;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.jasamedika.medifirst2000.base.BaseMaster;
import com.jasamedika.medifirst2000.helper.Caption;

@Entity //@Audited
@Table(name = "KelompokEvaluasi_M")
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
public class KelompokEvaluasi extends BaseMaster {
	
	@Caption(value = "kdKelompokEvaluasi")
	@Column(name = "kdKelompokEvaluasi", nullable = false)
	private Integer kdKelompokEvaluasi;
	
	@Caption(value = "kelompokEvaluasi")
	@Column(name = "kelompokEvaluasi", nullable = false)
	private String kelompokEvaluasi;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "kdKelompokEvaluasiHeadFK")
	@Caption(value = "kdKelompokEvaluasiHead")
	private KelompokEvaluasi kdKelompokEvaluasiHead;
	
	@Column(name = "kdKelompokEvaluasiHeadFK", insertable = false, updatable = false,nullable = true)
	private Integer kdKelompokEvaluasiHeadId;	
	
	@Caption(value = "noUrut")
	@Column(name = "noUrut", nullable = false)
	private Integer noUrut;
	
	@Caption(value = "keteranganLainnya")
	@Column(name = "keteranganLainnya", nullable = true, length = 300)
	private String keteranganLainnya;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "DepartemenFK")
	@Caption(value = "Departemen")
	private Departemen departemen;
	
	@Column(name = "DepartemenFK", insertable = false, updatable = false,nullable = true)
	private Integer departemenId;
	
	@Caption(value = "qKelompokEvaluasi")
	@Column(name = "qKelompokEvaluasi", nullable = false)
	private Integer qKelompokEvaluasi;
	
	
	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "public.KelompokEvaluasi_m_id_seq")
	@javax.persistence.SequenceGenerator(name = "public.KelompokEvaluasi_m_id_seq", sequenceName = "public.KelompokEvaluasi_m_id_seq", allocationSize = 1)
	@Column(name = "id")
	protected Integer id;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "PendidikanFK")
	@Caption(value = "Pendidikan")
	private Pendidikan pendidikan;
	
	@Column(name = "PendidikanFK", insertable = false, updatable = false,nullable = true)
	private Integer pendidikanId;
	
	@Column(name="Pengalaman")
	@Caption("Deskripsi Pengalaman")
	private String pengalaman;
	
	@Column(name="Pelatihan")
	@Caption("Deskripsi Pelatihan")
	private String pelatihan;
	
	public Integer getId() {

		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Integer getKdKelompokEvaluasi() {
		return kdKelompokEvaluasi;
	}

	public void setKdKelompokEvaluasi(Integer kdKelompokEvaluasi) {
		this.kdKelompokEvaluasi = kdKelompokEvaluasi;
	}

	public String getKelompokEvaluasi() {
		return kelompokEvaluasi;
	}

	public void setKelompokEvaluasi(String kelompokEvaluasi) {
		this.kelompokEvaluasi = kelompokEvaluasi;
	}

	public KelompokEvaluasi getKdKelompokEvaluasiHead() {
		return kdKelompokEvaluasiHead;
	}

	public void setKdKelompokEvaluasiHead(KelompokEvaluasi kdKelompokEvaluasiHead) {
		this.kdKelompokEvaluasiHead = kdKelompokEvaluasiHead;
	}

	public Integer getKdKelompokEvaluasiHeadId() {
		return kdKelompokEvaluasiHeadId;
	}

	public void setKdKelompokEvaluasiHeadId(Integer kdKelompokEvaluasiHeadId) {
		this.kdKelompokEvaluasiHeadId = kdKelompokEvaluasiHeadId;
	}

	
	public Integer getNoUrut() {
		return noUrut;
	}

	public void setNoUrut(Integer noUrut) {
		this.noUrut = noUrut;
	}

	public String getKeteranganLainnya() {
		return keteranganLainnya;
	}

	public void setKeteranganLainnya(String keteranganLainnya) {
		this.keteranganLainnya = keteranganLainnya;
	}

	public Departemen getDepartemen() {
		return departemen;
	}

	public void setDepartemen(Departemen departemen) {
		this.departemen = departemen;
	}

	public Integer getDepartemenId() {
		return departemenId;
	}

	public void setDepartemenId(Integer departemenId) {
		this.departemenId = departemenId;
	}

	public Integer getqKelompokEvaluasi() {
		return qKelompokEvaluasi;
	}

	public void setqKelompokEvaluasi(Integer qKelompokEvaluasi) {
		this.qKelompokEvaluasi = qKelompokEvaluasi;
	}

	public Pendidikan getPendidikan() {
		return pendidikan;
	}

	public void setPendidikan(Pendidikan pendidikan) {
		this.pendidikan = pendidikan;
	}

	public Integer getPendidikanId() {
		return pendidikanId;
	}

	public void setPendidikanId(Integer pendidikanId) {
		this.pendidikanId = pendidikanId;
	}

	public String getPengalaman() {
		return pengalaman;
	}

	public void setPengalaman(String pengalaman) {
		this.pengalaman = pengalaman;
	}

	public String getPelatihan() {
		return pelatihan;
	}

	public void setPelatihan(String pelatihan) {
		this.pelatihan = pelatihan;
	}

}
