package com.jasamedika.medifirst2000.entities;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.*;
import com.jasamedika.medifirst2000.entities.InstitusiPendidikan;
import com.jasamedika.medifirst2000.entities.JurusanPeminatan;
import com.jasamedika.medifirst2000.entities.Fakultas;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.jasamedika.medifirst2000.base.BaseTransaction;

import javax.validation.constraints.NotNull;
import com.jasamedika.medifirst2000.helper.Caption;

/**
 * class PernelitianEksternal
 * 
 * @author Generator
 */
@Entity
@Table(name = "sdm_PernelitianEksternal_T")
public class PernelitianEksternal extends BaseTransaction {
	@Column(name = "Nim", nullable = false, length = 100)
	@Caption(value = "Nim")
	private String nim;

	public String getNim() {
		return nim;
	}

	public void setNim(String nim) {
		this.nim = nim;
	}

	@Column(name = "NamaPeneliti", nullable = false, length = 100)
	@Caption(value = "NamaPeneliti")
	private String namaPeneliti;

	public String getNamaPeneliti() {
		return namaPeneliti;
	}

	public void setNamaPeneliti(String namaPeneliti) {
		this.namaPeneliti = namaPeneliti;
	}

	@Column(name = "PeriodePengajaran", nullable = false, length = 100)
	@Caption(value = "PeriodePengajaran")
	private Integer periodePengajaran;

	public Integer getPeriodePengajaran() {
		return periodePengajaran;
	}

	public void setPeriodePengajaran(Integer periodePengajaran) {
		this.periodePengajaran = periodePengajaran;
	}

	@ManyToOne
	@JoinColumn(name = "InstitusiPendidikanFk")
	@NotNull(message = "Institusi Pendidikan Harus Diisi")
	@Caption(value = "Institusi Pendidikan")
	private InstitusiPendidikan institusiPendidikan;

	public InstitusiPendidikan getInstitusiPendidikan() {
		return institusiPendidikan;
	}

	public void setInstitusiPendidikan(InstitusiPendidikan institusiPendidikan) {
		this.institusiPendidikan = institusiPendidikan;
	}

	@Column(name = "InstitusiPendidikanFk", insertable = false, updatable = false)
	private Integer institusiPendidikanId;

	@ManyToOne
	@JoinColumn(name = "JurusanPeminatanFk")
	@NotNull(message = "Jurusan Peminatan Harus Diisi")
	@Caption(value = "Jurusan Peminatan")
	private JurusanPeminatan jurusanPeminatan;

	public JurusanPeminatan getJurusanPeminatan() {
		return jurusanPeminatan;
	}

	public void setJurusanPeminatan(JurusanPeminatan jurusanPeminatan) {
		this.jurusanPeminatan = jurusanPeminatan;
	}

	@Column(name = "JurusanPeminatanFk", insertable = false, updatable = false)
	private Integer jurusanPeminatanId;

	@ManyToOne
	@JoinColumn(name = "FakultasFk")
	@NotNull(message = "Fakultas Harus Diisi")
	@Caption(value = "Fakultas")
	private Fakultas fakultas;

	public Fakultas getFakultas() {
		return fakultas;
	}

	public void setFakultas(Fakultas fakultas) {
		this.fakultas = fakultas;
	}

	@Column(name = "FakultasFk", insertable = false, updatable = false)
	private Integer fakultasId;

	@Column(name = "JudulPeneltian", nullable = false, length = 100)
	@Caption(value = "JudulPeneltian")
	private String judulPeneltian;

	public String getJudulPeneltian() {
		return judulPeneltian;
	}

	public void setJudulPeneltian(String judulPeneltian) {
		this.judulPeneltian = judulPeneltian;
	}

	@Column(name = "LokasiPenelitian", nullable = false, length = 100)
	@Caption(value = "LokasiPenelitian")
	private String lokasiPenelitian;

	public String getLokasiPenelitian() {
		return lokasiPenelitian;
	}

	public void setLokasiPenelitian(String lokasiPenelitian) {
		this.lokasiPenelitian = lokasiPenelitian;
	}

	@Column(name = "TanggalMulai", nullable = false, length = 100)
	@Caption(value = "TanggalMulai")
	private Date tanggalMulai;

	public Date getTanggalMulai() {
		return tanggalMulai;
	}

	public void setTanggalMulai(Date tanggalMulai) {
		this.tanggalMulai = tanggalMulai;
	}

	@Column(name = "NamaPendamping", nullable = false, length = 100)
	@Caption(value = "NamaPendamping")
	private String NamaPendamping;

	public String getNamaPendamping() {
		return NamaPendamping;
	}

	public void setNamaPendamping(String NamaPendamping) {
		this.NamaPendamping = NamaPendamping;
	}

	@Column(name = "BiayaPenelitian", nullable = false, length = 100)
	@Caption(value = "BiayaPenelitian")
	private Integer biayaPenelitian;

	public Integer getBiayaPenelitian() {
		return biayaPenelitian;
	}

	public void setBiayaPenelitian(Integer biayaPenelitian) {
		this.biayaPenelitian = biayaPenelitian;
	}

	@Column(name = "TanggalPembayaran", nullable = false, length = 100)
	@Caption(value = "TanggalPembayaran")
	private Date tanggalPembayaran;

	public Date getTanggalPembayaran() {
		return tanggalPembayaran;
	}

	public void setTanggalPembayaran(Date tanggalPembayaran) {
		this.tanggalPembayaran = tanggalPembayaran;
	}

	@Column(name = "NomorKwitansi", nullable = false, length = 100)
	@Caption(value = "NomorKwitansi")
	private String nomorKwitansi;

	public String getNomorKwitansi() {
		return nomorKwitansi;
	}

	public void setNomorKwitansi(String nomorKwitansi) {
		this.nomorKwitansi = nomorKwitansi;
	}

	@Column(name = "TanggalSelesai", nullable = false, length = 100)
	@Caption(value = "TanggalSelesai")
	private Date tanggalSelesai;

	public Date getTanggalSelesai() {
		return tanggalSelesai;
	}

	public void setTanggalSelesai(Date tanggalSelesai) {
		this.tanggalSelesai = tanggalSelesai;
	}

	@Column(name = "TanggalPresentasi", nullable = false, length = 100)
	@Caption(value = "TanggalPresentasi")
	private Date tanggalPresentasi;

	public Date getTanggalPresentasi() {
		return tanggalPresentasi;
	}

	public void setTanggalPresentasi(Date tanggalPresentasi) {
		this.tanggalPresentasi = tanggalPresentasi;
	}

	@Column(name = "LaporanPenelitian", nullable = false, length = 100)
	@Caption(value = "LaporanPenelitian")
	private String laporanPenelitian;

	public String getLaporanPenelitian() {
		return laporanPenelitian;
	}

	public void setLaporanPenelitian(String laporanPenelitian) {
		this.laporanPenelitian = laporanPenelitian;
	}

}