package com.jasamedika.medifirst2000.entities;

import java.io.Serializable;
import org.hibernate.envers.Audited;
import javax.persistence.*;

import org.hibernate.validator.constraints.NotEmpty;

import com.jasamedika.medifirst2000.base.BaseMaster;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.internal.util.logging.Messages;

import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.jasamedika.medifirst2000.base.BaseMaster;
import com.jasamedika.medifirst2000.helper.Caption;
import org.hibernate.envers.Audited;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

/**
 * class ProdukFormulaProduksi
 * 
 * @author Generator
 */
@Entity // @Audited
@Table(name = "ProdukFormulaProduksi_M")
public class ProdukFormulaProduksi extends BaseMaster {
	@Column(name = "FormulaProduksi", nullable = true, length = 300)
	@Caption(value = "Formula Produksi")
	private String formulaProduksi;

	public void setFormulaProduksi(String formulaProduksi) {
		this.formulaProduksi = formulaProduksi;
	}

	public String getFormulaProduksi() {
		return this.formulaProduksi;
	}

	@ManyToOne
	@JoinColumn(name = "ObjectProdukAsalFk")
	@NotNull(message = "Kd Produk Asal tidak boleh kosong")

	@Caption(value = "Object Produk Asal")
	private Produk produkAsal;

	public void setProdukAsal(Produk produkAsal) {
		this.produkAsal = produkAsal;
	}

	public Produk getProdukAsal() {
		return this.produkAsal;
	}

	@Column(name = "ObjectProdukAsalFk", insertable = false, updatable = false)
	private Integer produkAsalId;

	@ManyToOne
	@JoinColumn(name = "ObjectProdukHasilFk")
	@NotNull(message = "Kd Produk Hasil tidak boleh kosong")

	@Caption(value = "Object Produk Hasil")
	private Produk produkHasil;

	public void setProdukHasil(Produk produkHasil) {
		this.produkHasil = produkHasil;
	}

	public Produk getProdukHasil() {
		return this.produkHasil;
	}

	@Column(name = "ObjectProdukHasilFk", insertable = false, updatable = false, nullable = false)
	private Integer produkHasilId;

	@Column(name = "KeteranganLainnya", nullable = true, length = 150)
	@Caption(value = "Keterangan Lainnya")
	private String keteranganLainnya;

	public void setKeteranganLainnya(String keteranganLainnya) {
		this.keteranganLainnya = keteranganLainnya;
	}

	public String getKeteranganLainnya() {
		return this.keteranganLainnya;
	}

	@NotNull(message = "Qty Produk Asal tidak boleh kosong")
	@Column(name = "QtyProdukAsal", nullable = false)
	@Caption(value = "Qty Produk Asal")
	private Double qtyProdukAsal;

	public void setqtyProdukAsal(Double qtyProdukAsal) {
		this.qtyProdukAsal = qtyProdukAsal;
	}

	public Double getqtyProdukAsal() {
		return this.qtyProdukAsal;
	}

	@NotNull(message = "Satuan Produk Asal tidak boleh kosong")
	@Column(name = "SatuanProdukAsal", nullable = false, length = 1)
	@Caption(value = "Satuan Produk Asal")
	private Integer satuanProdukAsal;
	//private String satuanProdukAsal;
	
	public Integer getSatuanProdukAsal() {
		return satuanProdukAsal;
	}

	public void setSatuanProdukAsal(Integer satuanProdukAsal) {
		this.satuanProdukAsal = satuanProdukAsal;
	}
	
	/*
	public void setSatuanProdukAsal(String satuanProdukAsal) {
		this.satuanProdukAsal = satuanProdukAsal;
	}

	public String getSatuanProdukAsal() {
		return this.satuanProdukAsal;
	}
	*/
	
	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "public.produkformulaproduksi_m_id_seq")
	@javax.persistence.SequenceGenerator(name = "public.produkformulaproduksi_m_id_seq", sequenceName = "public.produkformulaproduksi_m_id_seq", allocationSize = 1)
	@Column(name = "id")
	protected Integer id;

	public Integer getId() {

		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}
}