package com.jasamedika.medifirst2000.vo;

import java.util.Date;

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

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.entities.ItPelaksanaanPerbaikan;
import com.jasamedika.medifirst2000.entities.ItStatusPerbaikan;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.entities.RegistrasiAset;
import com.jasamedika.medifirst2000.helper.Caption;

public class ItPerbaikanVO 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 = "itPerbaikan")
	private ItStatusPerbaikanVO itStatusPerbaikan;
	
	@OneToOne(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "itPerbaikan")
	private ItPelaksanaanPerbaikanVO itPelaksanaanPerbaikan;
	
	private String strukOrderId;
	
	private Integer ruanganId;
	
	private Integer pelaporId;

	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 ItStatusPerbaikanVO getItStatusPerbaikan() {
		return itStatusPerbaikan;
	}

	public void setItStatusPerbaikan(ItStatusPerbaikanVO itStatusPerbaikan) {
		this.itStatusPerbaikan = itStatusPerbaikan;
	}

	public ItPelaksanaanPerbaikanVO getItPelaksanaanPerbaikan() {
		return itPelaksanaanPerbaikan;
	}

	public void setItPelaksanaanPerbaikan(ItPelaksanaanPerbaikanVO itPelaksanaanPerbaikan) {
		this.itPelaksanaanPerbaikan = itPelaksanaanPerbaikan;
	}

	public String getStrukOrderId() {
		return strukOrderId;
	}

	public void setStrukOrderId(String strukOrderId) {
		this.strukOrderId = strukOrderId;
	}

	public Integer getRuanganId() {
		return ruanganId;
	}

	public void setRuanganId(Integer ruanganId) {
		this.ruanganId = ruanganId;
	}

	public Integer getPelaporId() {
		return pelaporId;
	}

	public void setPelaporId(Integer pelaporId) {
		this.pelaporId = pelaporId;
	}
	
	

	
}
