package com.jasamedika.medifirst2000.vo;

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

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.jasamedika.medifirst2000.base.vo.BaseMasterVO;
import com.jasamedika.medifirst2000.entities.PegawaiSKCuti;
import com.jasamedika.medifirst2000.helper.Caption;

public class PegawaiSKCutiVO extends BaseMasterVO{
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Triger Akumulasi")
	private PegawaiSKCutiVO trigerAkumulasi;
	
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "trigerAkumulasi")
	private Set<PegawaiSKCutiVO> trigerAkumulasiSet = new HashSet<>();

	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Kategory Pegawai")
	private KategoryPegawaiVO kategoryPegawai;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Range Masa Kerja")
	private RangeVO rangeMasaKerja;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Status Pegawai")
	private StatusPegawaiVO statusPegawai;
	
	@Caption(value="Kuota Total Hari")
	private Integer kuotaTotalHari;
	
	@Caption(value="Kuota Min Hari Take")
	private Integer kuotaMinHariTake;
	
	@Caption(value="Qty Max Take")
	private Integer qtyMaxTake;
	
	@Caption(value="Is By Month")
	private Integer isByMonth;
	
	@Caption(value="Is By Year")
	private Integer isByYear;
	
	@Caption(value="Is Pro Rate")
	private Integer isProRate;
	
	@Caption(value="Tgl Kuota Total Hari Reset")
	private Date tglKuotaTotalHariReset;
	
	@Caption(value="Is Akumulasi")
	private Integer isAkumulasi;
	
	@Caption(value="Keterangan Lainya")
	private String keteranganLainya;

	public KategoryPegawaiVO getKategoryPegawai() {
		return kategoryPegawai;
	}

	public void setKategoryPegawai(KategoryPegawaiVO kategoryPegawai) {
		this.kategoryPegawai = kategoryPegawai;
	}

	public RangeVO getRangeMasaKerja() {
		return rangeMasaKerja;
	}

	public void setRangeMasaKerja(RangeVO rangeMasaKerja) {
		this.rangeMasaKerja = rangeMasaKerja;
	}

	public StatusPegawaiVO getStatusPegawai() {
		return statusPegawai;
	}

	public void setStatusPegawai(StatusPegawaiVO statusPegawai) {
		this.statusPegawai = statusPegawai;
	}

	public Integer getKuotaTotalHari() {
		return kuotaTotalHari;
	}

	public void setKuotaTotalHari(Integer kuotaTotalHari) {
		this.kuotaTotalHari = kuotaTotalHari;
	}

	public Integer getKuotaMinHariTake() {
		return kuotaMinHariTake;
	}

	public void setKuotaMinHariTake(Integer kuotaMinHariTake) {
		this.kuotaMinHariTake = kuotaMinHariTake;
	}

	public Integer getQtyMaxTake() {
		return qtyMaxTake;
	}

	public void setQtyMaxTake(Integer qtyMaxTake) {
		this.qtyMaxTake = qtyMaxTake;
	}

	public Integer getIsByMonth() {
		return isByMonth;
	}

	public void setIsByMonth(Integer isByMonth) {
		this.isByMonth = isByMonth;
	}

	public Integer getIsByYear() {
		return isByYear;
	}

	public void setIsByYear(Integer isByYear) {
		this.isByYear = isByYear;
	}

	public Integer getIsProRate() {
		return isProRate;
	}

	public void setIsProRate(Integer isProRate) {
		this.isProRate = isProRate;
	}

	public Date getTglKuotaTotalHariReset() {
		return tglKuotaTotalHariReset;
	}

	public void setTglKuotaTotalHariReset(Date tglKuotaTotalHariReset) {
		this.tglKuotaTotalHariReset = tglKuotaTotalHariReset;
	}

	public Integer getIsAkumulasi() {
		return isAkumulasi;
	}

	public void setIsAkumulasi(Integer isAkumulasi) {
		this.isAkumulasi = isAkumulasi;
	}

	public String getKeteranganLainya() {
		return keteranganLainya;
	}

	public void setKeteranganLainya(String keteranganLainya) {
		this.keteranganLainya = keteranganLainya;
	}

	public PegawaiSKCutiVO getTrigerAkumulasi() {
		return trigerAkumulasi;
	}

	public void setTrigerAkumulasi(PegawaiSKCutiVO trigerAkumulasi) {
		this.trigerAkumulasi = trigerAkumulasi;
	}

	public Set<PegawaiSKCutiVO> getTrigerAkumulasiSet() {
		return trigerAkumulasiSet;
	}

	public void setTrigerAkumulasiSet(Set<PegawaiSKCutiVO> trigerAkumulasiSet) {
		this.trigerAkumulasiSet = trigerAkumulasiSet;
	}
	
	
}
