package com.jasamedika.medifirst2000.entities;

import java.util.Date;
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 com.fasterxml.jackson.annotation.JsonBackReference;
import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.helper.Caption;

@Entity
@Table(name="Variabel_T")
public class Variabel extends BaseTransaction{
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object No Registrasi")
	@JoinColumn(name="ObjectNoRegistrasiFk")
	private PasienDaftar noRegistrasi;
	
	@Column(name="ObjectNoRegistrasiFk", insertable=false, updatable=false, nullable=true)
	private String  noRegistrasiId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Pegawai")
	@JoinColumn(name="Pegawaifk")
	private Pegawai pegawai;
	
	@Column(name="Pegawaifk", insertable=false, updatable=false, nullable=true)
	private Integer pegawaiId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="JenisObservasi")
	@JoinColumn(name="JenisObservasifk")
	private JenisObservasi jenisObservasi;
	
	@Column(name="JenisObservasifk", insertable=false, updatable=false, nullable=true)
	private Integer jenisObservasiId;
	
	@Caption(value="tglInput ")
	@Column(name="tglInput ")
	private Date tglInput ;
	
	@Caption(value="tglObservasi ")
	@Column(name="tglObservasi ", nullable=false)
	private Date tglObservasi ;
	
	@Caption(value="variabel ")
	@Column(name="variabel ")
	private String variabel ;
	
	@JsonBackReference
	@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "variabel")
	Set<VariabelD> variabelDetail = new HashSet<>();

	public PasienDaftar getNoRegistrasi() {
		return noRegistrasi;
	}

	public void setNoRegistrasi(PasienDaftar noRegistrasi) {
		this.noRegistrasi = noRegistrasi;
	}

	public String getNoRegistrasiId() {
		return noRegistrasiId;
	}

	public void setNoRegistrasiId(String noRegistrasiId) {
		this.noRegistrasiId = noRegistrasiId;
	}

	public Pegawai getPegawai() {
		return pegawai;
	}

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

	public Integer getPegawaiId() {
		return pegawaiId;
	}

	public void setPegawaiId(Integer pegawaiId) {
		this.pegawaiId = pegawaiId;
	}

	public JenisObservasi getJenisObservasi() {
		return jenisObservasi;
	}

	public void setJenisObservasi(JenisObservasi jenisObservasi) {
		this.jenisObservasi = jenisObservasi;
	}

	public Integer getJenisObservasiId() {
		return jenisObservasiId;
	}

	public void setJenisObservasiId(Integer jenisObservasiId) {
		this.jenisObservasiId = jenisObservasiId;
	}

	public Date getTglInput() {
		return tglInput;
	}

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

	public Date getTglObservasi() {
		return tglObservasi;
	}

	public void setTglObservasi(Date tglObservasi) {
		this.tglObservasi = tglObservasi;
	}

	public String getVariabel() {
		return variabel;
	}

	public void setVariabel(String variabel) {
		this.variabel = variabel;
	}

	public Set<VariabelD> getVariabelDetail() {
		return variabelDetail;
	}

	public void setVariabelDetail(Set<VariabelD> variabelDetail) {
		this.variabelDetail = variabelDetail;
	}

}
