package com.jasamedika.medifirst2000.vo;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.validation.constraints.NotNull;

import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.entities.Alamat;
import com.jasamedika.medifirst2000.entities.JenisKelamin;
import com.jasamedika.medifirst2000.entities.JenisRespon;
import com.jasamedika.medifirst2000.entities.KelompokProduk;
import com.jasamedika.medifirst2000.entities.KelompokTransaksi;
import com.jasamedika.medifirst2000.entities.Komunikasi;
import com.jasamedika.medifirst2000.entities.Pasien;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.entities.Ruangan;
import com.jasamedika.medifirst2000.helper.Caption;

public class HistoriPelayananCsVO extends BaseTransactionVO {
	
	@Caption(value = "No Histori")
	@NotNull(message = "No Histori tidak boleh kosong")
	private String noHistori;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value = "Object Ruangan Tujuan")
	private RuanganVO ruanganTujuan;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value = "Object Pegawai Tujuan")
	private PegawaiVO pegawaiTujuan;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value = "Object Jenis Respon")
	private JenisResponVO jenisRespon;

	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value = "Object Komunikasi")
	private KomunikasiVO komunikasi;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@Caption(value = "Object Kelompok Transaksi")
	private KelompokTransaksiVO kelompokTransaksi;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Alamat Customer")
	private AlamatVO alamatCustomer;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Kelompok Produk")
	private KelompokProdukVO kelompokProduk;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Alamat CS")
	private AlamatVO alamatCs;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="No CM")
	private PasienVO noCM;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value = "Object Pegawai Terima")
	private PegawaiVO pegawaiTerima;
	
	//@Column(name = "NoCMFk", insertable = false, updatable = false, nullable = true)
	//@Column(name = "NoCMFk")
	//private String NoCMId;
	
	public PegawaiVO getPegawaiTerima() {
		return pegawaiTerima;
	}

	public void setPegawaiTerima(PegawaiVO pegawaiTerima) {
		this.pegawaiTerima = pegawaiTerima;
	}

	@Caption(value = "Detail Respon")
	private String detailRespon;
	
	@Caption(value = "Deskripsi")
	private String deskripsi;
	
	@Caption(value = "Tgl Pelayanan Awal")
	private Date tglPelayananAwal;
	
	@Caption(value = "Tgl Pelayanan Akhir")
	private Date tglPelayananAkhir;

	@Caption(value = "Keterangan")
	private String keterangan;

	@Caption(value = " Kode Produk")
	private Integer kdProduk;
	
	@Caption(value = "Nama Customer")
	private String namaCustomer;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value = "Object Jenis Kelamin")
	private JenisKelaminVO kelamin;

	@Caption(value = "Tgl Lahir")
	private Date tglLahir;
	
	@Caption(value = "Is Cito")
	private Integer isCito;
	
	@Caption(value = "Is Pelayanan")
	private Integer isPelayanan;

	public String getNoHistori() {
		return noHistori;
	}

	public void setNoHistori(String noHistori) {
		this.noHistori = noHistori;
	}

	public RuanganVO getRuanganTujuan() {
		return ruanganTujuan;
	}

	public void setRuanganTujuan(RuanganVO ruanganTujuan) {
		this.ruanganTujuan = ruanganTujuan;
	}

	public PegawaiVO getPegawaiTujuan() {
		return pegawaiTujuan;
	}

	public void setPegawaiTujuan(PegawaiVO pegawaiTujuan) {
		this.pegawaiTujuan = pegawaiTujuan;
	}

	public JenisResponVO getJenisRespon() {
		return jenisRespon;
	}

	public void setJenisRespon(JenisResponVO jenisRespon) {
		this.jenisRespon = jenisRespon;
	}

	public KomunikasiVO getKomunikasi() {
		return komunikasi;
	}

	public void setKomunikasi(KomunikasiVO komunikasi) {
		this.komunikasi = komunikasi;
	}

	public String getDetailRespon() {
		return detailRespon;
	}

	public void setDetailRespon(String detailRespon) {
		this.detailRespon = detailRespon;
	}

	public String getDeskripsi() {
		return deskripsi;
	}

	public void setDeskripsi(String deskripsi) {
		this.deskripsi = deskripsi;
	}

	public Date getTglPelayananAwal() {
		return tglPelayananAwal;
	}

	public void setTglPelayananAwal(Date tglPelayananAwal) {
		this.tglPelayananAwal = tglPelayananAwal;
	}

	public Date getTglPelayananAkhir() {
		return tglPelayananAkhir;
	}

	public void setTglPelayananAkhir(Date tglPelayananAkhir) {
		this.tglPelayananAkhir = tglPelayananAkhir;
	}

	public String getKeterangan() {
		return keterangan;
	}

	public void setKeterangan(String keterangan) {
		this.keterangan = keterangan;
	}

	public Integer getKdProduk() {
		return kdProduk;
	}

	public void setKdProduk(Integer kdProduk) {
		this.kdProduk = kdProduk;
	}

	public String getNamaCustomer() {
		return namaCustomer;
	}

	public void setNamaCustomer(String namaCustomer) {
		this.namaCustomer = namaCustomer;
	}

	public JenisKelaminVO getKelamin() {
		return kelamin;
	}

	public void setKelamin(JenisKelaminVO kelamin) {
		this.kelamin = kelamin;
	}

	public Date getTglLahir() {
		return tglLahir;
	}

	public void setTglLahir(Date tglLahir) {
		this.tglLahir = tglLahir;
	}

	public Integer getIsCito() {
		return isCito;
	}

	public void setIsCito(Integer isCito) {
		this.isCito = isCito;
	}

	public Integer getIsPelayanan() {
		return isPelayanan;
	}

	public void setIsPelayanan(Integer isPelayanan) {
		this.isPelayanan = isPelayanan;
	}

	public AlamatVO getAlamatCustomer() {
		return alamatCustomer;
	}

	public void setAlamatCustomer(AlamatVO alamatCustomer) {
		this.alamatCustomer = alamatCustomer;
	}

	public AlamatVO getAlamatCs() {
		return alamatCs;
	}

	public void setAlamatCs(AlamatVO alamatCs) {
		this.alamatCs = alamatCs;
	}

	
/*
	public PasienVO getPasien() {
		return pasien;
	}

	public void setPasien(PasienVO pasien) {
		this.pasien = pasien;
	}

	public String getNoCMId() {
		return NoCMId;
	}

	public void setNoCMId(String noCMId) {
		NoCMId = noCMId;
	}
*/
	public KelompokTransaksiVO getKelompokTransaksi() {
		return kelompokTransaksi;
	}

	public void setKelompokTransaksi(KelompokTransaksiVO kelompokTransaksi) {
		this.kelompokTransaksi = kelompokTransaksi;
	}

	public PasienVO getNoCM() {
		return noCM;
	}

	public void setNoCM(PasienVO noCM) {
		this.noCM = noCM;
	}

	public KelompokProdukVO getKelompokProduk() {
		return kelompokProduk;
	}

	public void setKelompokProduk(KelompokProdukVO kelompokProduk) {
		this.kelompokProduk = kelompokProduk;
	}
	
	
	
}
