package com.jasamedika.medifirst2000.vo;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.validation.constraints.NotNull;

import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.entities.KegiatanAnggaran;
import com.jasamedika.medifirst2000.entities.KemenLemb;
import com.jasamedika.medifirst2000.entities.Program;
import com.jasamedika.medifirst2000.entities.Ruangan;
import com.jasamedika.medifirst2000.entities.UnitKerja;
import com.jasamedika.medifirst2000.entities.UnitOrg;
import com.jasamedika.medifirst2000.helper.Caption;

public class HeadAnggaranVO extends BaseTransactionVO{
	
	@Caption(value="Kode Head Anggaran")
	private String kdHeadAnggaran;
	
	@Caption(value="Tahun")
	private Integer tahun;
	
	@OneToMany(fetch = FetchType.LAZY)
	@Caption(value = "Kegiatan Anggaran")
	private Set<KegiatanAnggaranVO> kegiatanAnggaran = new HashSet<KegiatanAnggaranVO>();

	@ManyToOne(fetch = FetchType.LAZY)
	@Caption(value="Kemen/Lemb")
	private KemenLembVO kemenLemb;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@Caption(value="Unit Organisasi")
	private UnitOrgVO unitOrganisasi;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@Caption(value = "Object Ruangan")
	private RuanganVO ruangan;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@Caption(value="Program")
	private ProgramVO program;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@Caption(value = "Object Unit Kerja")
	@NotNull(message="Unit Kerja Harus Diisi")
	private UnitKerjaVO unitKerja;

	public String getKdHeadAnggaran() {
		return kdHeadAnggaran;
	}

	public void setKdHeadAnggaran(String kdHeadAnggaran) {
		this.kdHeadAnggaran = kdHeadAnggaran;
	}

	public Integer getTahun() {
		return tahun;
	}

	public void setTahun(Integer tahun) {
		this.tahun = tahun;
	}

	public Set<KegiatanAnggaranVO> getKegiatanAnggaran() {
		return kegiatanAnggaran;
	}

	public void setKegiatanAnggaran(Set<KegiatanAnggaranVO> kegiatanAnggaran) {
		this.kegiatanAnggaran = kegiatanAnggaran;
	}

	public KemenLembVO getKemenLemb() {
		return kemenLemb;
	}

	public void setKemenLemb(KemenLembVO kemenLemb) {
		this.kemenLemb = kemenLemb;
	}

	public UnitOrgVO getUnitOrganisasi() {
		return unitOrganisasi;
	}

	public void setUnitOrganisasi(UnitOrgVO unitOrganisasi) {
		this.unitOrganisasi = unitOrganisasi;
	}

	public RuanganVO getRuangan() {
		return ruangan;
	}

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

	public ProgramVO getProgram() {
		return program;
	}

	public void setProgram(ProgramVO program) {
		this.program = program;
	}

	public UnitKerjaVO getUnitKerja() {
		return unitKerja;
	}

	public void setUnitKerja(UnitKerjaVO unitKerja) {
		this.unitKerja = unitKerja;
	}
	
}
