package com.jasamedika.medifirst2000.entities;

import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;

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

@Entity 
@Table(name = "LembarKonsultasi_T")
public class LembarKonsultasi extends BaseTransaction {
	
	@JsonBackReference
	@OneToOne
	@JoinColumn(name = "ObjectPapRencanaKonsultasiFk")
	@Caption(value="Object Rencana Konsultasi")
	private PapRencanaKonsultasi papRencanaKonsultasi;
	
	
	@Column(name = "ObjectPapRencanaKonsultasiFk", insertable=false,updatable=false,nullable=true)
	private String papRencanaKonsultasiId;
	
	
	public PapRencanaKonsultasi getPapRencanaKonsultasi() {
		return papRencanaKonsultasi;
	}

	public void setPapRencanaKonsultasi(PapRencanaKonsultasi papRencanaKonsultasi) {
		this.papRencanaKonsultasi = papRencanaKonsultasi;
	}

	@ManyToOne
	@JoinColumn(name = "ObjectPasienDaftarFk")
	@Caption(value="Object PasienDaftar")
	private PasienDaftar pasienDaftar;
	
	@Column(name = "ObjectPasienDaftarFk", insertable=false,updatable=false)
	private String pasienDaftarId;

	@ManyToOne
	@JoinColumn(name = "ObjectPasienFk")
	@Caption(value="Object Pasien")
	private Pasien pasien;
	
	@Column(name = "ObjectPasienFk", insertable=false,updatable=false)
	private Integer pasienId;

	@ManyToOne
	@JoinColumn(name = "ObjectRuanganFk")
	@Caption(value="Object Ruangan")
	private Ruangan ruangan;
	
	@Column(name = "ObjectRuanganFk", insertable=false,updatable=false)
	private Integer ruanganId;
	
	@ManyToOne
	@JoinColumn(name = "ObjectDokterFk")
	@Caption(value="Object Dokter")
	private Pegawai pegawai;
	
	@Column(name = "ObjectDokterFk", insertable=false,updatable=false)
	private Integer pegawaiId;

	@Column(name = "Tanggal", nullable = true )
	@Caption(value="Tanggal")
	private Date tanggal;
	
	@Column(name = "HasilPemeriksaan", nullable = true )
	@Caption(value="HasilPemeriksaan")
	private String hasilPemeriksaan;

	@Column(name = "Saran", nullable = true )
	@Caption(value="Saran")
	private String saran;

	@JsonManagedReference
	@OneToOne(cascade=CascadeType.ALL, mappedBy="lembarKonsultasi")  
	private JawabanKonsultasi jawabanKonsultasi;
	
	@Column(name = "TglInput", nullable = true )
	@Caption(value="Tanggal Input")
	private Date tglInput;

	public Pasien getPasien() {
	return pasien;
	}

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

	public Ruangan getRuangan() {
		return ruangan;
	}

	public void setRuangan(Ruangan ruangan) {
		this.ruangan = ruangan;
	}

	public Integer getRuanganId() {
		return ruanganId;
	}

	public void setRuanganId(Integer ruanganId) {
		this.ruanganId = ruanganId;
	}

	public Pegawai getPegawai() {
		return pegawai;
	}

	public void setPegawai(Pegawai pegawai) {
		this.pegawai = pegawai;
	}

	public Date getTanggal() {
		return tanggal;
	}

	public void setTanggal(Date tanggal) {
		this.tanggal = tanggal;
	}

	public String getHasilPemeriksaan() {
		return hasilPemeriksaan;
	}

	public void setHasilPemeriksaan(String hasilPemeriksaan) {
		this.hasilPemeriksaan = hasilPemeriksaan;
	}

	public String getSaran() {
		return saran;
	}

	public void setSaran(String saran) {
		this.saran = saran;
	}

	public PasienDaftar getPasienDaftar() {
		return pasienDaftar;
	}

	public void setPasienDaftar(PasienDaftar pasienDaftar) {
		this.pasienDaftar = pasienDaftar;
	}

	public JawabanKonsultasi getJawabanKonsultasi() {
		return jawabanKonsultasi;
	}

	public void setJawabanKonsultasi(JawabanKonsultasi jawabanKonsultasi) {
		this.jawabanKonsultasi = jawabanKonsultasi;
	}

	public Date getTglInput() {
		return tglInput;
	}

	public void setTglInput(Date tglInput) {
		this.tglInput = tglInput;
	}

}
