package com.jasamedika.medifirst2000.vo;

import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import org.hibernate.validator.constraints.NotEmpty;

import com.jasamedika.medifirst2000.base.vo.BaseMasterVO;
import com.jasamedika.medifirst2000.entities.KomponenIndex;
import com.jasamedika.medifirst2000.entities.StatusPegawai;

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;

public class StatusPegawaiVO extends BaseMasterVO {
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Status Pegawai Head")
	private StatusPegawaiVO statusPegawaiHead;
	
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "statusPegawaiHead")
	private Set<StatusPegawaiVO> statusPegawaiHeadSet = new HashSet<>();
	
	@NotNull(message="Kd Status Pegawai tidak boleh kosong")
	@Caption(value="Kode Status Pegawai")
	private Byte kdStatusPegawai;

	@NotNull(message="QStatus Pegawai tidak boleh kosong")
	@Caption(value="QStatus Pegawai")
	private Byte qStatusPegawai;

	@NotNull(message="Status Pegawai tidak boleh kosong")
	@Caption(value="Status Pegawai")
	private String statusPegawai;

	@Column(name="FactorRate")
	@Caption(value="Factor Rate")
	private Float factorRate;
	
	@Column(name="OperatorFactorRate")
	@Caption(value="Operator Factor Rate")
	private String operatorFactorRate;
	
	@Caption(value="Object Komponen Index")
	private KomponenIndexVO komponenIndex;

	public Byte getKdStatusPegawai() {
		return kdStatusPegawai;
	}

	public void setKdStatusPegawai(Byte kdStatusPegawai) {
		this.kdStatusPegawai = kdStatusPegawai;
	}

	public Byte getqStatusPegawai() {
		return qStatusPegawai;
	}

	public void setqStatusPegawai(Byte qStatusPegawai) {
		this.qStatusPegawai = qStatusPegawai;
	}

	public String getStatusPegawai() {
		return statusPegawai;
	}

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

	public Float getFactorRate() {
		return factorRate;
	}

	public void setFactorRate(Float factorRate) {
		this.factorRate = factorRate;
	}

	public String getOperatorFactorRate() {
		return operatorFactorRate;
	}

	public void setOperatorFactorRate(String operatorFactorRate) {
		this.operatorFactorRate = operatorFactorRate;
	}

	public KomponenIndexVO getKomponenIndex() {
		return komponenIndex;
	}

	public void setKomponenIndex(KomponenIndexVO komponenIndex) {
		this.komponenIndex = komponenIndex;
	}

	public StatusPegawaiVO getStatusPegawaiHead() {
		return statusPegawaiHead;
	}

	public void setStatusPegawaiHead(StatusPegawaiVO statusPegawaiHead) {
		this.statusPegawaiHead = statusPegawaiHead;
	}

	public Set<StatusPegawaiVO> getStatusPegawaiHeadSet() {
		return statusPegawaiHeadSet;
	}

	public void setStatusPegawaiHeadSet(Set<StatusPegawaiVO> statusPegawaiHeadSet) {
		this.statusPegawaiHeadSet = statusPegawaiHeadSet;
	}
	
}

