package com.jasamedika.medifirst2000.vo;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.validation.constraints.NotNull;

import com.jasamedika.medifirst2000.base.vo.BaseMasterVO;
import com.jasamedika.medifirst2000.helper.Caption;

/**
 * class Dokumen
 * 
 * @author Generator
 */
// @Entity //@Audited
// @Table(name = "Dokumen_M")
public class DokumenVO extends BaseMasterVO {
	@Caption(value = "Deskripsi Dokumen")
	private String deskripsiDokumen;

	public void setDeskripsiDokumen(String deskripsiDokumen) {
		this.deskripsiDokumen = deskripsiDokumen;
	}

	public String getDeskripsiDokumen() {
		return this.deskripsiDokumen;
	}

	@Caption(value = "Is Dokumen In Out Int")
	private Byte isDokumenInOutInt;

	public void setIsDokumenInOutInt(Byte isDokumenInOutInt) {
		this.isDokumenInOutInt = isDokumenInOutInt;
	}

	public Byte getIsDokumenInOutInt() {
		return this.isDokumenInOutInt;
	}

	@Caption(value = "Kode Dokumen")
	private Integer kdDokumen;

	public void setKdDokumen(Integer kdDokumen) {
		this.kdDokumen = kdDokumen;
	}

	public Integer getKdDokumen() {
		return this.kdDokumen;
	}

	@Caption(value = "Object Dokumen Head")
	private DokumenVO dokumenHead;

	public void setDokumenHead(DokumenVO dokumenHead) {
		this.dokumenHead = dokumenHead;
	}

	public DokumenVO getDokumenHead() {
		return this.dokumenHead;
	}

	@Caption(value = "Object Jenis Dokumen")
	private JenisDokumenVO jenisDokumen;

	public void setJenisDokumen(JenisDokumenVO jenisDokumen) {
		this.jenisDokumen = jenisDokumen;
	}

	public JenisDokumenVO getJenisDokumen() {
		return this.jenisDokumen;
	}

	@Caption(value = "Object Kategory Dokumen")
	private KategoryDokumenVO kategoryDokumen;

	public void setKategoryDokumen(KategoryDokumenVO kategoryDokumen) {
		this.kategoryDokumen = kategoryDokumen;
	}

	public KategoryDokumenVO getKategoryDokumen() {
		return this.kategoryDokumen;
	}

	
	@Caption(value = "Object Lokasi")
	private LokasiVO lokasi;

	public void setLokasi(LokasiVO lokasi) {
		this.lokasi = lokasi;
	}

	public LokasiVO getLokasi() {
		return this.lokasi;
	}

		@Caption(value = "Object Pegawai Pembuat")
	private PegawaiVO pegawaiPembuat;

	public void setPegawaiPembuat(PegawaiVO pegawaiPembuat) {
		this.pegawaiPembuat = pegawaiPembuat;
	}

	public PegawaiVO getPegawaiPembuat() {
		return this.pegawaiPembuat;
	}

	@ManyToOne
	@JoinColumn(name = "ObjectRuanganFk")
	// @NotNull(message="Kd Ruangan tidak boleh kosong")

	@Caption(value = "Object Ruangan")
	private RuanganVO ruangan;

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

	public RuanganVO getRuangan() {
		return this.ruangan;
	}

	@NotNull(message = "Nama Judul Dokumen tidak boleh kosong")
	@Column(name = "NamaJudulDokumen", nullable = false, length = 150)
	@Caption(value = "Nama Judul Dokumen")
	private String namaJudulDokumen;

	public void setNamaJudulDokumen(String namaJudulDokumen) {
		this.namaJudulDokumen = namaJudulDokumen;
	}

	public String getNamaJudulDokumen() {
		return this.namaJudulDokumen;
	}

	@Column(name = "NoDokumen", nullable = true, length = 30)
	@Caption(value = "No Dokumen")
	private String noDokumen;

	public void setNoDokumen(String noDokumen) {
		this.noDokumen = noDokumen;
	}

	public String getNoDokumen() {
		return this.noDokumen;
	}

	@Column(name = "PathFile", nullable = true, length = 300)
	@Caption(value = "Path File")
	private String pathFile;

	public void setPathFile(String pathFile) {
		this.pathFile = pathFile;
	}

	public String getPathFile() {
		return this.pathFile;
	}

	@Caption(value = "Pegawai Pembuat")
	private String namaPegawaiPembuat;

	@Column(name = "PegawaiPembuat", nullable = true, length = 160)
	public String getNamaPegawaiPembuat() {
		return namaPegawaiPembuat;
	}

	public void setNamaPegawaiPembuat(String namaPegawaiPembuat) {
		this.namaPegawaiPembuat = namaPegawaiPembuat;
	}

	@NotNull(message = "QDokumen tidak boleh kosong")
	@Column(name = "QDokumen", nullable = false)
	@Caption(value = "QDokumen")
	private Integer qDokumen;

	public void setqDokumen(Integer qDokumen) {
		this.qDokumen = qDokumen;
	}

	public Integer getqDokumen() {
		return this.qDokumen;
	}

	@Column(name = "QtyLampiran", nullable = true)
	@Caption(value = "Qty Lampiran")
	private short qtyLampiran;

	public short getQtyLampiran() {
		return qtyLampiran;
	}

	public void setQtyLampiran(short qtyLampiran) {
		this.qtyLampiran = qtyLampiran;
	}

	@Column(name = "TglDokumen", nullable = true)
	@Caption(value = "Tanggal Dokumen")
	private Date tglDokumen;

	public void setTglDokumen(Date tglDokumen) {
		this.tglDokumen = tglDokumen;
	}

	public Date getTglDokumen() {
		return this.tglDokumen;
	}

	/*
	 * //
	 * 
	 * @OneToMany(fetch=FetchType.LAZY, cascade = CascadeType.ALL,
	 * mappedBy="kddokumenhead") private Set<Dokumen> DokumenSet = new
	 * HashSet<Dokumen>();
	 * 
	 * public Set<Dokumen> getDokumenSet() { return DokumenSet; }
	 * 
	 * public void setDokumenSet(Set<Dokumen> dokumenSet) { DokumenSet =
	 * dokumenSet; }
	 */

	private SuratVO surat;

	public SuratVO getSurat() {
		return surat;
	}

	public void setSurat(SuratVO surat) {
		this.surat = surat;
	}

	// add by Arya 2017-02-16
	private SatuanWaktuVO satuanWaktu;

	private Integer jangkaWaktu;

	private String status;

	public String isVerifikasi;

	public String getIsVerifikasi() {
		return isVerifikasi;
	}

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

	public SatuanWaktuVO getSatuanWaktu() {
		return satuanWaktu;
	}

	public void setSatuanWaktu(SatuanWaktuVO satuanWaktu) {
		this.satuanWaktu = satuanWaktu;
	}

	public Integer getJangkaWaktu() {
		return jangkaWaktu;
	}

	public void setJangkaWaktu(Integer jangkaWaktu) {
		this.jangkaWaktu = jangkaWaktu;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

}
