package com.jasamedika.medifirst2000.vo;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.*;
import java.util.Date;
import org.hibernate.validator.constraints.NotEmpty;

import com.jasamedika.medifirst2000.base.vo.BaseMasterVO;
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.vo.BaseMasterVO;
import com.jasamedika.medifirst2000.helper.Caption;

/**
 *  class GeneralJenisProduk
 * 
 * @author Generator
 */
//@Entity
//@Table(name = "GeneralJenisProduk_M")
public class GeneralJenisProdukVO extends BaseMasterVO {
	@Caption(value="GJenis Produk")
	private String gJenisProduk;

	public void setGJenisProduk(String gJenisProduk) {
		this.gJenisProduk = gJenisProduk;
	}

	@Column(name = "GJenisProduk", nullable = false , length = 30)
	public String getGJenisProduk(){
		return this.gJenisProduk;
	}

	@ManyToOne
	@JoinColumn(name = "ObjectDepartemenFk")
	@NotNull(message="Object DepartemenVO Harus Diisi")
	@Caption(value="Object Departemen")
	private DepartemenVO departemen;

	public void setDepartemen(DepartemenVO departemen) {
		this.departemen = departemen;
	}

	@Column(name = "KdDepartemen", nullable = false , length = 1)
	public DepartemenVO getDepartemen(){
		return this.departemen;
	}

	@Column(name = "ObjectDepartemenFk", insertable=false,updatable=false)
	private Integer departemenId;

	@Caption(value="Kode G Jenis Produk")
	private String kdGJenisProduk;

	public void setKdGJenisProduk(String kdGJenisProduk) {
		this.kdGJenisProduk = kdGJenisProduk;
	}

	@Column(name = "KdGJenisProduk", nullable = false , length = 2)
	public String getKdGJenisProduk(){
		return this.kdGJenisProduk;
	}

	@ManyToOne
	@JoinColumn(name = "ObjectGJenisProdukHeadFk")
	@Caption(value="Object G Jenis ProdukVO Head")
	private GeneralJenisProdukVO gJenisProdukHead;

	public void setGJenisProdukHead(GeneralJenisProdukVO gJenisProdukHead) {
		this.gJenisProdukHead = gJenisProdukHead;
	}

	@Column(name = "KdGJenisProdukHead", nullable = true , length = 2)
	public GeneralJenisProdukVO getGJenisProdukHead(){
		return this.gJenisProdukHead;
	}

	@Column(name = "ObjectGJenisProdukHeadFk", insertable=false,updatable=false)
	private Integer gJenisProdukHeadId;

	@ManyToOne
	@JoinColumn(name = "ObjectGKelompokProdukFk")
	@NotNull(message="Object G Kelompok ProdukVO Harus Diisi")
	@Caption(value="Object G Kelompok Produk")
	private GeneralKelompokProdukVO gKelompokProduk;

	public void setGKelompokProduk(GeneralKelompokProdukVO gKelompokProduk) {
		this.gKelompokProduk = gKelompokProduk;
	}

	@Column(name = "KdGKelompokProduk", nullable = false )
	public GeneralKelompokProdukVO getGKelompokProduk(){
		return this.gKelompokProduk;
	}

	@Column(name = "ObjectGKelompokProdukFk", insertable=false,updatable=false)
	private Integer gKelompokProdukId;

	@Caption(value="QG Jenis Produk")
	private short qGJenisProduk;

	public void setqGJenisProduk(short qGJenisProduk) {
		this.qGJenisProduk = qGJenisProduk;
	}

	@Column(name = "QGJenisProduk", nullable = false )
	public short getqGJenisProduk(){
		return this.qGJenisProduk;
	}

	/*//
	@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "kdgjenisproduk")
	private Set<GeneralDetailJenisProduk> GeneralDetailJenisProdukSet = new HashSet<GeneralDetailJenisProduk>();

	public Set<GeneralDetailJenisProduk> getGeneralDetailJenisProdukSet() {
		return GeneralDetailJenisProdukSet;
	}

	public void setGeneralDetailJenisProdukSet(Set<GeneralDetailJenisProduk> generalDetailJenisProdukSet) {
		GeneralDetailJenisProdukSet = generalDetailJenisProdukSet;
	}
	
	//
	@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "kdgjenisprodukhead")
	private Set<GeneralJenisProduk> GeneralJenisProdukSet = new HashSet<GeneralJenisProduk>();

	public Set<GeneralJenisProduk> getGeneralJenisProdukSet() {
		return GeneralJenisProdukSet;
	}

	public void setGeneralJenisProdukSet(Set<GeneralJenisProduk> generalJenisProdukSet) {
		GeneralJenisProdukSet = generalJenisProdukSet;
	}*/

	
}

