package com.jasamedika.medifirst2000.entities;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;

import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.helper.Caption;

@Entity
@Table(name = "sdm_MonitoringAbsen_T")
public class MonitoringAbsen extends BaseTransaction {

	@ManyToOne
	@JoinColumn(name = "PegawaiFk")
	@NotNull(message = "Pegawai Harus Diisi")
	@Caption(value = "Pegawai")
	private Pegawai pegawai;

	@Column(name = "PegawaiFk", insertable = false, updatable = false)
	private Integer pegawaiId;

	@ManyToOne
	@JoinColumn(name = "ShiftKerjaFk")
	@NotNull(message = "Shift Kerja Harus Diisi")
	@Caption(value = "ShiftKerja")
	private ShiftKerja shiftKerja;

	@Column(name = "ShiftKerjaFk", insertable = false, updatable = false)
	private Integer shiftKerjaId;

	@Caption(value = "alasan")
	@Column(name = "alasan", nullable = true)
	private String alasan;

	@Caption(value = "jadwalPulang")
	@Column(name = "jadwalPulang", nullable = true)
	private String jadwalPulang;

	@Caption(value = "jadwalmasuk")
	@Column(name = "jadwalmasuk", nullable = true)
	private String jadwalmasuk;

	@Caption(value = "absensiMasuk")
	@Column(name = "absensiMasuk", nullable = true)
	private String absensiMasuk;

	@Caption(value = "absensiPulang")
	@Column(name = "absensiPulang", nullable = true)
	private String absensiPulang;

	@Caption(value = "terlambat")
	@Column(name = "terlambat", nullable = true)
	private Long terlambat;

	@Caption(value = "pulangAwal")
	@Column(name = "pulangAwal", nullable = true)
	private Long pulangAwal;

	@Caption(value = "jamEfektif")
	@Column(name = "jamEfektif", nullable = true)
	private String jamEfektif;

	@Caption(value = "tanggal")
	@Column(name = "tanggal", nullable = false)
	private String tanggal;

	@Caption(value = "Tanggal Presensi")
	@Column(name = "tglpresensi", nullable = false)
	@Temporal(TemporalType.DATE)
	private Date tglPresensi;

	// Untuk Absensi verifikasi
	@ManyToOne
	@JoinColumn(name = "verifikasiUnitKerjaFK")
	@NotNull(message = "verifikasiUnitKerjaFK")
	@Caption(value = "verifikasiUnitKerjaFK")
	private StrukVerifikasi strukVerifikasi;

	@Column(name = "verifikasiUnitKerjaFK", columnDefinition = "CHAR(32)", insertable = false, updatable = false)
	private String verifikasiUnitKerjaFK;

	@ManyToOne
	@JoinColumn(name = "verifikasiSdmFK")
	@NotNull(message = "verifikasiSdmFK")
	@Caption(value = "verifikasiSdmFK")
	private StrukVerifikasi strukVerifikasiSdm;

	@Column(name = "verifikasiSdmFK", columnDefinition = "CHAR(32)", insertable = false, updatable = false)
	private String verifikasiSdmFK;

	@Column(name = "verifiedLembur")
	private Integer verifiedLembur;

	@Caption(value = "kelebihanJamKerja")
	@Column(name = "kelebihanJamKerja", nullable = true)
	private Long kelebihanJamKerja;

	@Caption(value = "Status Foto Sesuai")
	@Column(name = "isfotosesuai", nullable = true)
	private Boolean isFotoSesuai;

	@Caption(value = "Status Lokasi Sesuai")
	@Column(name = "islokasisesuai", nullable = true)
	private Boolean isLokasiSesuai;

	@Caption(value = "Status Atribut Lengkap")
	@Column(name = "isatributlengkap", nullable = true)
	private Boolean isAtributLengkap;

	@Caption(value = "Status Verifikasi")
	@Column(name = "isverifikasi", nullable = true)
	private Boolean isVerifikasi;

	public Pegawai getPegawai() {
		return pegawai;
	}

	public void setPegawai(Pegawai pegawai) {
		this.pegawai = pegawai;
	}

	public Integer getPegawaiId() {
		return pegawaiId;
	}

	public void setPegawaiId(Integer pegawaiId) {
		this.pegawaiId = pegawaiId;
	}

	public ShiftKerja getShiftKerja() {
		return shiftKerja;
	}

	public void setShiftKerja(ShiftKerja shiftKerja) {
		this.shiftKerja = shiftKerja;
	}

	public Integer getShiftKerjaId() {
		return shiftKerjaId;
	}

	public void setShiftKerjaId(Integer shiftKerjaId) {
		this.shiftKerjaId = shiftKerjaId;
	}

	public String getAlasan() {
		return alasan;
	}

	public void setAlasan(String alasan) {
		this.alasan = alasan;
	}

	public String getJadwalPulang() {
		return jadwalPulang;
	}

	public void setJadwalPulang(String jadwalPulang) {
		this.jadwalPulang = jadwalPulang;
	}

	public String getJadwalmasuk() {
		return jadwalmasuk;
	}

	public void setJadwalmasuk(String jadwalmasuk) {
		this.jadwalmasuk = jadwalmasuk;
	}

	public String getAbsensiMasuk() {
		return absensiMasuk;
	}

	public void setAbsensiMasuk(String absensiMasuk) {
		this.absensiMasuk = absensiMasuk;
	}

	public String getAbsensiPulang() {
		return absensiPulang;
	}

	public void setAbsensiPulang(String absensiPulang) {
		this.absensiPulang = absensiPulang;
	}

	public Long getTerlambat() {
		return terlambat;
	}

	public void setTerlambat(Long terlambat) {
		this.terlambat = terlambat;
	}

	public Long getPulangAwal() {
		return pulangAwal;
	}

	public void setPulangAwal(Long pulangAwal) {
		this.pulangAwal = pulangAwal;
	}

	public String getJamEfektif() {
		return jamEfektif;
	}

	public void setJamEfektif(String jamEfektif) {
		this.jamEfektif = jamEfektif;
	}

	public String getTanggal() {
		return tanggal;
	}

	public void setTanggal(String tanggal) {
		this.tanggal = tanggal;
	}

	public Date getTglPresensi() {
		return tglPresensi;
	}

	public void setTglPresensi(Date tglPresensi) {
		this.tglPresensi = tglPresensi;
	}

	public StrukVerifikasi getStrukVerifikasi() {
		return strukVerifikasi;
	}

	public void setStrukVerifikasi(StrukVerifikasi strukVerifikasi) {
		this.strukVerifikasi = strukVerifikasi;
	}

	public StrukVerifikasi getStrukVerifikasiSdm() {
		return strukVerifikasiSdm;
	}

	public void setStrukVerifikasiSdm(StrukVerifikasi strukVerifikasiSdm) {
		this.strukVerifikasiSdm = strukVerifikasiSdm;
	}

	public Long getKelebihanJamKerja() {
		return kelebihanJamKerja;
	}

	public void setKelebihanJamKerja(Long kelebihanJamKerja) {
		this.kelebihanJamKerja = kelebihanJamKerja;
	}

	public String getVerifikasiUnitKerjaFK() {
		return verifikasiUnitKerjaFK;
	}

	public void setVerifikasiUnitKerjaFK(String verifikasiUnitKerjaFK) {
		this.verifikasiUnitKerjaFK = verifikasiUnitKerjaFK;
	}

	public String getVerifikasiSdmFK() {
		return verifikasiSdmFK;
	}

	public void setVerifikasiSdmFK(String verifikasiSdmFK) {
		this.verifikasiSdmFK = verifikasiSdmFK;
	}

	public Integer getVerifiedLembur() {
		return verifiedLembur;
	}

	public void setVerifiedLembur(Integer verifiedLembur) {
		this.verifiedLembur = verifiedLembur;
	}

	public Boolean getIsFotoSesuai() {
		return isFotoSesuai;
	}

	public void setIsFotoSesuai(Boolean isFotoSesuai) {
		this.isFotoSesuai = isFotoSesuai;
	}

	public Boolean getIsLokasiSesuai() {
		return isLokasiSesuai;
	}

	public void setIsLokasiSesuai(Boolean isLokasiSesuai) {
		this.isLokasiSesuai = isLokasiSesuai;
	}

	public Boolean getIsAtributLengkap() {
		return isAtributLengkap;
	}

	public void setIsAtributLengkap(Boolean isAtributLengkap) {
		this.isAtributLengkap = isAtributLengkap;
	}

	public Boolean getIsVerifikasi() {
		return isVerifikasi;
	}

	public void setIsVerifikasi(Boolean isVerifikasi) {
		this.isVerifikasi = isVerifikasi;
	}

}
