package com.jasamedika.medifirst2000.entities;

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

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

@Entity
@Table(name = "SterilisasiAlatExternal_T")
public class SterilisasiAlatExternal extends BaseTransaction{
	
	@ManyToOne
	@JoinColumn(name = "ObjectNoBundleFk")
	@Caption(value="Object No Bundle")
	private BundleSetAlat noBundle;
	
	@Column(name = "ObjectNoBundleFk", insertable = false, updatable = false, nullable = true)
	private Integer noBundleId;
	
	@ManyToOne
	@JoinColumn(name = "ObjectAlatFk")
	@Caption(value="Object Alat")
	private Alat alat;
	
	@Column(name = "ObjectAlatFk", insertable = false, updatable = false, nullable = true)
	private Integer alatId;
	
	@Column(name = "JumlahCycle", nullable = true)
	@Caption(value = "Jumlah Cycle")
	private Byte jumlahCycle;
	
	@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
	@ManyToOne(fetch= FetchType.LAZY)
	@JoinColumn(name = "ObjectSatuanFk")
	@NotNull(message = "No Bundle tidak boleh kosong") 
	@Caption(value="Object Satuan")
	private SatuanStandar satuan;
	
	@Column(name = "ObjectSatuanFk", insertable = false, updatable = false, nullable = false)
	private Integer satuanStandarId;
	
	@ManyToOne
	@JoinColumn(name = "ObjectMetodeSterilisasiFk")
	@NotNull(message = "No Bundle tidak boleh kosong") 
	@Caption(value="Object Metode Sterilisasi")
	private MetodeSterilisasi metodeSterilisasi;
	
	@Column(name = "ObjectMetodeSterilisasiFk", insertable = false, updatable = false, nullable = false)
	private Integer metodeSterilisasiId;

	@Column(name = "HargaPerCycle", nullable = true)
	@Caption(value = "Harga Per Cycle")
	private Integer hargaPerCycle;
	
	@Column(name = "TotalHarga", nullable = true)
	@Caption(value = "TotalHarga")
	private Integer totalHarga;

	public BundleSetAlat getNoBundle() {
		return noBundle;
	}

	public void setNoBundle(BundleSetAlat noBundle) {
		this.noBundle = noBundle;
	}

	public Alat getAlat() {
		return alat;
	}

	public void setAlat(Alat alat) {
		this.alat = alat;
	}

	public Byte getJumlahCycle() {
		return jumlahCycle;
	}

	public void setJumlahCycle(Byte jumlahCycle) {
		this.jumlahCycle = jumlahCycle;
	}

	public SatuanStandar getSatuan() {
		return satuan;
	}

	public void setSatuan(SatuanStandar satuan) {
		this.satuan = satuan;
	}

	public MetodeSterilisasi getMetodeSterilisasi() {
		return metodeSterilisasi;
	}

	public void setMetodeSterilisasi(MetodeSterilisasi metodeSterilisasi) {
		this.metodeSterilisasi = metodeSterilisasi;
	}

	public Integer getHargaPerCycle() {
		return hargaPerCycle;
	}

	public void setHargaPerCycle(Integer hargaPerCycle) {
		this.hargaPerCycle = hargaPerCycle;
	}

	public Integer getTotalHarga() {
		return totalHarga;
	}

	public void setTotalHarga(Integer totalHarga) {
		this.totalHarga = totalHarga;
	}

}
