package com.jasamedika.medifirst2000.entities;

import java.io.Serializable;

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 javax.validation.constraints.NotNull;

import org.hibernate.annotations.GenericGenerator;

import com.jasamedika.medifirst2000.base.BaseMaster;
import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.helper.Caption;

@Entity
@Table(name="Fasilitas_M")
public class FasilitasM extends BaseMaster {
	
	@Id
	@GeneratedValue(
		    strategy=GenerationType.SEQUENCE, 
		    generator="public.fasilitas_m_id_seq")
	@javax.persistence.SequenceGenerator(
			name="public.fasilitas_m_id_seq",
			sequenceName="public.fasilitas_m_id_seq",
			allocationSize=1
			)
	@Column(name = "id")
	protected Integer id;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}
	
	
	@NotNull(message = "Kd Fasilitas tidak boleh kosong")
	@Column(name = "KdFasilitas", nullable = false)
	@Caption(value = "Kode Fasilitas")
	private Byte kdFasilitas;
	
	@NotNull(message = "Nama Fasilitas tidak boleh kosong")
	@Column(name = "NamaFasilitas", length = 150)
	@Caption(value = "Nama Fasilitas")
	private String namaFasilitas;
	
	@NotNull(message = "Report Fasilitas tidak boleh kosong")
	@Column(name = "ReportFasilitas", nullable = false, length = 150)
	@Caption(value = "Report Fasilitas")
	private String reportFasilitas;
	
	@Column(name = "DeskripsiDetailFasilitas", length = 1000)
	@Caption(value = "Deskripsi Detail Fasilitas")
	private String deskirpsiDetailFasilitas;
	
	
	@Column(name = "PathFileGambar1", length = 300)
	@Caption(value = "Path File Gambar 1")
	private String pathFileGambar1;
	
	@Column(name = "PathFileGambar2", length = 300)
	@Caption(value = "Path File Gambar 2")
	private String pathFileGambar2;
	
	@Column(name = "PathFileGambar3", length = 300)
	@Caption(value = "Path File Gambar 3")
	private String pathFileGambar3;
	
	@Column(name = "PathFileGambar4", length = 300)
	@Caption(value = "Path File Gambar 4")
	private String pathFileGambar4;
	
	@Column(name = "FileGambar1")
	@Caption(value = "File Gambar 1")
	private String fileGambar1;
	
	@Column(name = "FileGambar2")
	@Caption(value = "File Gambar 2")
	private String fileGambar2;
	
	@Column(name = "FileGambar3")
	@Caption(value = "File Gambar 3")
	private String fileGambar3;
	
	@Column(name = "KdFasilitasHead", nullable = false)
	@Caption(value = "Kode Fasilitas Head")
	private Byte kdFasilitasHead;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "KdJenisProduk")
	@Caption(value="Kode Jenis Produk")
	private JenisProduk kdJenisProduk;

	@Column(name = "KdJenisProduk", insertable = false, updatable = false, nullable = true)
	private Integer kdJenisProdukId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "KdPegawaiJawab")
	@Caption(value="Kode Pegawai Jawab")
	private Pegawai kdPegawaiPJawab;

	@Column(name = "KdPegawaiJawab", insertable = false, updatable = false, nullable = true)
	private Integer kdPegawaiJawabId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "KdRuangan")
	@Caption(value="Kode Ruangan")
	private Ruangan kdRuangan;

	@Column(name = "KdRuangan", insertable = false, updatable = false, nullable = true)
	private Integer kdRuanganId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "KdKelas")
	@Caption(value="Kode Kelas")
	private Kelas kdKelas;

	@Column(name = "KdKelas", insertable = false, updatable = false, nullable = true)
	private Integer kdKelasId;
	
	@Column(name = "QtyFasilitas")
	@Caption(value = "Qty Fasilitas")
	private Integer qtyFasilitas;
	
	@Column(name = "KeteranganLainnya", length = 150)
	@Caption(value = "Keterangan Lainnya")
	private String keteranganLainnya;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "KdDepartemen")
	@Caption(value="Kode Departemen")
	private Departemen kdDepartemen;

	@Column(name = "KdDepartemen", insertable = false, updatable = false, nullable = true)
	private Integer kdDepartemenId;

	public Byte getKdFasilitas() {
		return kdFasilitas;
	}

	public void setKdFasilitas(Byte kdFasilitas) {
		this.kdFasilitas = kdFasilitas;
	}

	public String getNamaFasilitas() {
		return namaFasilitas;
	}

	public void setNamaFasilitas(String namaFasilitas) {
		this.namaFasilitas = namaFasilitas;
	}

	public String getReportFasilitas() {
		return reportFasilitas;
	}

	public void setReportFasilitas(String reportFasilitas) {
		this.reportFasilitas = reportFasilitas;
	}

	public String getDeskirpsiDetailFasilitas() {
		return deskirpsiDetailFasilitas;
	}

	public void setDeskirpsiDetailFasilitas(String deskirpsiDetailFasilitas) {
		this.deskirpsiDetailFasilitas = deskirpsiDetailFasilitas;
	}

	public String getPathFileGambar1() {
		return pathFileGambar1;
	}

	public void setPathFileGambar1(String pathFileGambar1) {
		this.pathFileGambar1 = pathFileGambar1;
	}

	public String getPathFileGambar2() {
		return pathFileGambar2;
	}

	public void setPathFileGambar2(String pathFileGambar2) {
		this.pathFileGambar2 = pathFileGambar2;
	}

	public String getPathFileGambar3() {
		return pathFileGambar3;
	}

	public void setPathFileGambar3(String pathFileGambar3) {
		this.pathFileGambar3 = pathFileGambar3;
	}

	public String getPathFileGambar4() {
		return pathFileGambar4;
	}

	public void setPathFileGambar4(String pathFileGambar4) {
		this.pathFileGambar4 = pathFileGambar4;
	}

	public String getFileGambar1() {
		return fileGambar1;
	}

	public void setFileGambar1(String fileGambar1) {
		this.fileGambar1 = fileGambar1;
	}

	public String getFileGambar2() {
		return fileGambar2;
	}

	public void setFileGambar2(String fileGambar2) {
		this.fileGambar2 = fileGambar2;
	}

	public String getFileGambar3() {
		return fileGambar3;
	}

	public void setFileGambar3(String fileGambar3) {
		this.fileGambar3 = fileGambar3;
	}

	public Byte getKdFasilitasHead() {
		return kdFasilitasHead;
	}

	public void setKdFasilitasHead(Byte kdFasilitasHead) {
		this.kdFasilitasHead = kdFasilitasHead;
	}

	public JenisProduk getKdJenisProduk() {
		return kdJenisProduk;
	}

	public void setKdJenisProduk(JenisProduk kdJenisProduk) {
		this.kdJenisProduk = kdJenisProduk;
	}

	public Integer getKdJenisProdukId() {
		return kdJenisProdukId;
	}

	public void setKdJenisProdukId(Integer kdJenisProdukId) {
		this.kdJenisProdukId = kdJenisProdukId;
	}

	public Pegawai getKdPegawaiPJawab() {
		return kdPegawaiPJawab;
	}

	public void setKdPegawaiPJawab(Pegawai kdPegawaiPJawab) {
		this.kdPegawaiPJawab = kdPegawaiPJawab;
	}

	public Integer getKdPegawaiJawabId() {
		return kdPegawaiJawabId;
	}

	public void setKdPegawaiJawabId(Integer kdPegawaiJawabId) {
		this.kdPegawaiJawabId = kdPegawaiJawabId;
	}

	public Ruangan getKdRuangan() {
		return kdRuangan;
	}

	public void setKdRuangan(Ruangan kdRuangan) {
		this.kdRuangan = kdRuangan;
	}

	public Integer getKdRuanganId() {
		return kdRuanganId;
	}

	public void setKdRuanganId(Integer kdRuanganId) {
		this.kdRuanganId = kdRuanganId;
	}

	public Kelas getKdKelas() {
		return kdKelas;
	}

	public void setKdKelas(Kelas kdKelas) {
		this.kdKelas = kdKelas;
	}

	public Integer getKdKelasId() {
		return kdKelasId;
	}

	public void setKdKelasId(Integer kdKelasId) {
		this.kdKelasId = kdKelasId;
	}

	public Integer getQtyFasilitas() {
		return qtyFasilitas;
	}

	public void setQtyFasilitas(Integer qtyFasilitas) {
		this.qtyFasilitas = qtyFasilitas;
	}

	public String getKeteranganLainnya() {
		return keteranganLainnya;
	}

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

	public Departemen getKdDepartemen() {
		return kdDepartemen;
	}

	public void setKdDepartemen(Departemen kdDepartemen) {
		this.kdDepartemen = kdDepartemen;
	}

	public Integer getKdDepartemenId() {
		return kdDepartemenId;
	}

	public void setKdDepartemenId(Integer kdDepartemenId) {
		this.kdDepartemenId = kdDepartemenId;
	}

	public String getKodeExternal() {
		return kodeExternal;
	}

	public void setKodeExternal(String kodeExternal) {
		this.kodeExternal = kodeExternal;
	}

	public String getNamaExternal() {
		return namaExternal;
	}

	public void setNamaExternal(String namaExternal) {
		this.namaExternal = namaExternal;
	}

	
}
