package com.jasamedika.medifirst2000.vo;

import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;

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

public class IpsrsPerbaikanVO extends BaseTransactionVO{

	@Caption(value = "No Order")
	private String noOrder;
	
	@Temporal(TemporalType.TIMESTAMP)
	@Caption(value = "Tanggal Pesan")
	@NotNull(message="Tanggal Pesan tidak boleh kosong")
	private Date tglPesan;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@Caption(value = "Registrasi Aset")
	private RegistrasiAsetVO registrasiAset;
	
	@Caption(value = "Keluhan")
	@NotNull(message="Keluhan tidak boleh kosong")
	private String keluhan;

	@ManyToOne(fetch = FetchType.LAZY)
	@Caption(value = "Pelapor")
	private PegawaiVO pelapor;
	
	@OneToOne(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "ipsrsPerbaikan")
	private IpsrsStatusPerbaikanVO ipsrsStatusPerbaikan;
	
	@OneToOne(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "ipsrsPerbaikan")
	private IpsrsPelaksanaanPerbaikanVO IpsrsPelaksanaanPerbaikan;

	public String getNoOrder() {
		return noOrder;
	}

	public void setNoOrder(String noOrder) {
		this.noOrder = noOrder;
	}

	public Date getTglPesan() {
		return tglPesan;
	}

	public void setTglPesan(Date tglPesan) {
		this.tglPesan = tglPesan;
	}

	public RegistrasiAsetVO getRegistrasiAset() {
		return registrasiAset;
	}

	public void setRegistrasiAset(RegistrasiAsetVO registrasiAset) {
		this.registrasiAset = registrasiAset;
	}

	public String getKeluhan() {
		return keluhan;
	}

	public void setKeluhan(String keluhan) {
		this.keluhan = keluhan;
	}

	public PegawaiVO getPelapor() {
		return pelapor;
	}

	public void setPelapor(PegawaiVO pelapor) {
		this.pelapor = pelapor;
	}

	public IpsrsStatusPerbaikanVO getIpsrsStatusPerbaikan() {
		return ipsrsStatusPerbaikan;
	}

	public void setIpsrsStatusPerbaikan(IpsrsStatusPerbaikanVO ipsrsStatusPerbaikan) {
		this.ipsrsStatusPerbaikan = ipsrsStatusPerbaikan;
	}

	public IpsrsPelaksanaanPerbaikanVO getIpsrsPelaksanaanPerbaikan() {
		return IpsrsPelaksanaanPerbaikan;
	}

	public void setIpsrsPelaksanaanPerbaikan(IpsrsPelaksanaanPerbaikanVO ipsrsPelaksanaanPerbaikan) {
		IpsrsPelaksanaanPerbaikan = ipsrsPelaksanaanPerbaikan;
	}

}