package com.jasamedika.medifirst2000.entities;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;

import org.joda.time.DateTime;

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

/**
 * class PelayananPasienPetugas
 * 
 * @author Generator
 */
@Entity
@Table(name = "PelayananPasienPetugas_T")
public class PelayananPasienPetugas extends BaseTransaction {

	@Caption(value = "Deskripsi Tugas Fungsi")
	private String deskripsitugasfungsi;

	@Caption(value = "Is Petugas Pe P Jawab")
	private Byte ispetugaspepjawab;

	@ManyToOne
	@JoinColumn(name = "PelayananPasien")
	@NotNull(message = "Object Asal Produk Harus Diisi")
	@Caption(value = "Object Asal Produk")
	private PelayananPasien pelayananPasien;

	@ManyToOne
	@JoinColumn(name = "ObjectAsalProdukFk")
	@NotNull(message = "Object Asal Produk Harus Diisi")
	@Caption(value = "Object Asal Produk")
	private AsalProduk kdasalproduk;

	@Column(name = "ObjectAsalProdukFk", insertable = false, updatable = false)
	private Integer ObjectAsalProdukId;

	@Column(name = "PelayananPasien", insertable = false, updatable = false)
	private String pelayananPasienId;

	@ManyToOne
	@JoinColumn(name = "ObjectJenisPetugasPeFk")
	@NotNull(message = "Object Jenis Petugas Pe Harus Diisi")
	@Caption(value = "Object Jenis Petugas Pe")
	private JenisPetugasPelaksana kdjenispetugaspe;

	@Column(name = "ObjectJenisPetugasPeFk", insertable = false, updatable = false)
	private Integer ObjectJenisPetugasPeId;

	@ManyToOne
	@JoinColumn(name = "ObjectPegawaiFk")
	@NotNull(message = "Object Pegawai Harus Diisi")
	@Caption(value = "Object Pegawai")
	private Pegawai kdpegawai;

	@Column(name = "ObjectPegawaiFk", insertable = false, updatable = false)
	private Integer ObjectPegawaiId;

	@ManyToOne
	@JoinColumn(name = "ObjectProdukFk")
	@NotNull(message = "Object Produk Harus Diisi")
	@Caption(value = "Object Produk")
	private Produk kdproduk;

	@Column(name = "ObjectProdukFk", insertable = false, updatable = false)
	private Integer ObjectProdukId;

	@ManyToOne
	@JoinColumn(name = "ObjectRuanganFk")
	@NotNull(message = "Object Ruangan Harus Diisi")
	@Caption(value = "Object Ruangan")
	private Ruangan kdruangan;

	@Column(name = "ObjectRuanganFk", insertable = false, updatable = false)
	private Integer ObjectRuanganId;

	@ManyToOne
	@JoinColumn(name = "NoMasukFk")
	@NotNull(message = "No Masuk Harus Diisi")
	@Caption(value = "No Masuk")
	private AntrianPasienDiPeriksa nomasuk;

	@Column(name = "NoMasukFk", insertable = false, updatable = false)
	private String NoMasukId;

	@Caption(value = "Tanggal Pelayanan")
	private DateTime tglpelayanan;

	@Column(name = "asaid", nullable = true)
	@Caption(value = "Jenis Klasifikasi ASA")
	private Byte asaId;

	public void setDeskripsiTugasFungsi(String deskripsitugasfungsi) {
		this.deskripsitugasfungsi = deskripsitugasfungsi;
	}

	@Column(name = "DeskripsiTugasFungsi", nullable = true, length = 75)
	public String getDeskripsiTugasFungsi() {
		return this.deskripsitugasfungsi;
	}

	public void setisPetugasPePJawab(Byte ispetugaspepjawab) {
		this.ispetugaspepjawab = ispetugaspepjawab;
	}

	@Column(name = "isPetugasPePJawab", nullable = false)
	public Byte getisPetugasPePJawab() {
		return this.ispetugaspepjawab;
	}

	public PelayananPasien getPelayananPasien() {
		return pelayananPasien;
	}

	public void setPelayananPasien(PelayananPasien pelayananPasien) {
		this.pelayananPasien = pelayananPasien;
	}

	public void setObjectAsalProduk(AsalProduk kdasalproduk) {
		this.kdasalproduk = kdasalproduk;
	}

	@Column(name = "KdAsalProduk", nullable = false)
	public AsalProduk getObjectAsalProduk() {
		return this.kdasalproduk;
	}

	public void setObjectJenisPetugasPe(JenisPetugasPelaksana kdjenispetugaspe) {
		this.kdjenispetugaspe = kdjenispetugaspe;
	}

	@Column(name = "KdJenisPetugasPe", nullable = false)
	public JenisPetugasPelaksana getObjectJenisPetugasPe() {
		return this.kdjenispetugaspe;
	}

	public void setObjectPegawai(Pegawai kdpegawai) {
		this.kdpegawai = kdpegawai;
	}

	@Column(name = "KdPegawai", nullable = true, length = 5)
	public Pegawai getObjectPegawai() {
		return this.kdpegawai;
	}

	public void setObjectProduk(Produk kdproduk) {
		this.kdproduk = kdproduk;
	}

	@Column(name = "KdProduk", nullable = false, length = 6)
	public Produk getObjectProduk() {
		return this.kdproduk;
	}

	public void setObjectRuangan(Ruangan kdruangan) {
		this.kdruangan = kdruangan;
	}

	@Column(name = "KdRuangan", nullable = false, length = 3)
	public Ruangan getObjectRuangan() {
		return this.kdruangan;
	}

	public void setNoMasuk(AntrianPasienDiPeriksa nomasuk) {
		this.nomasuk = nomasuk;
	}

	public AntrianPasienDiPeriksa getNoMasuk() {
		return this.nomasuk;
	}

	public void setTanggalPelayanan(DateTime tglpelayanan) {
		this.tglpelayanan = tglpelayanan;
	}

	@Column(name = "TglPelayanan", nullable = false)
	public DateTime getTanggalPelayanan() {
		return this.tglpelayanan;
	}

	@JsonBackReference
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "pelayananPasienPetugas")
	public Set<MapPelayananPasienPetugasToPegawai> mapPelayananPasienPetugasToPegawaiSet = new HashSet<>();

	public Set<MapPelayananPasienPetugasToPegawai> getMapPelayananPasienPetugasToPegawaiSet() {
		return mapPelayananPasienPetugasToPegawaiSet;
	}

	public void setMapPelayananPasienPetugasToPegawaiSet(
			Set<MapPelayananPasienPetugasToPegawai> mapPelayananPasienPetugasToPegawaiSet) {
		this.mapPelayananPasienPetugasToPegawaiSet = mapPelayananPasienPetugasToPegawaiSet;
	}

	public String getDeskripsitugasfungsi() {
		return deskripsitugasfungsi;
	}

	public void setDeskripsitugasfungsi(String deskripsitugasfungsi) {
		this.deskripsitugasfungsi = deskripsitugasfungsi;
	}

	public Byte getIspetugaspepjawab() {
		return ispetugaspepjawab;
	}

	public void setIspetugaspepjawab(Byte ispetugaspepjawab) {
		this.ispetugaspepjawab = ispetugaspepjawab;
	}

	public AsalProduk getKdasalproduk() {
		return kdasalproduk;
	}

	public void setKdasalproduk(AsalProduk kdasalproduk) {
		this.kdasalproduk = kdasalproduk;
	}

	public Integer getObjectAsalProdukId() {
		return ObjectAsalProdukId;
	}

	public void setObjectAsalProdukId(Integer objectAsalProdukId) {
		ObjectAsalProdukId = objectAsalProdukId;
	}

	public String getPelayananPasienId() {
		return pelayananPasienId;
	}

	public void setPelayananPasienId(String pelayananPasienId) {
		this.pelayananPasienId = pelayananPasienId;
	}

	public JenisPetugasPelaksana getKdjenispetugaspe() {
		return kdjenispetugaspe;
	}

	public void setKdjenispetugaspe(JenisPetugasPelaksana kdjenispetugaspe) {
		this.kdjenispetugaspe = kdjenispetugaspe;
	}

	public Integer getObjectJenisPetugasPeId() {
		return ObjectJenisPetugasPeId;
	}

	public void setObjectJenisPetugasPeId(Integer objectJenisPetugasPeId) {
		ObjectJenisPetugasPeId = objectJenisPetugasPeId;
	}

	public Pegawai getKdpegawai() {
		return kdpegawai;
	}

	public void setKdpegawai(Pegawai kdpegawai) {
		this.kdpegawai = kdpegawai;
	}

	public Integer getObjectPegawaiId() {
		return ObjectPegawaiId;
	}

	public void setObjectPegawaiId(Integer objectPegawaiId) {
		ObjectPegawaiId = objectPegawaiId;
	}

	public Produk getKdproduk() {
		return kdproduk;
	}

	public void setKdproduk(Produk kdproduk) {
		this.kdproduk = kdproduk;
	}

	public Integer getObjectProdukId() {
		return ObjectProdukId;
	}

	public void setObjectProdukId(Integer objectProdukId) {
		ObjectProdukId = objectProdukId;
	}

	public Ruangan getKdruangan() {
		return kdruangan;
	}

	public void setKdruangan(Ruangan kdruangan) {
		this.kdruangan = kdruangan;
	}

	public Integer getObjectRuanganId() {
		return ObjectRuanganId;
	}

	public void setObjectRuanganId(Integer objectRuanganId) {
		ObjectRuanganId = objectRuanganId;
	}

	public AntrianPasienDiPeriksa getNomasuk() {
		return nomasuk;
	}

	public void setNomasuk(AntrianPasienDiPeriksa nomasuk) {
		this.nomasuk = nomasuk;
	}

	public String getNoMasukId() {
		return NoMasukId;
	}

	public void setNoMasukId(String noMasukId) {
		NoMasukId = noMasukId;
	}

	public DateTime getTglpelayanan() {
		return tglpelayanan;
	}

	public void setTglpelayanan(DateTime tglpelayanan) {
		this.tglpelayanan = tglpelayanan;
	}

	public Byte getAsaId() {
		return asaId;
	}

	public void setAsaId(Byte asaId) {
		this.asaId = asaId;
	}

}
