package com.jasamedika.medifirst2000.vo;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.entities.ItPelaksanaanPerbaikanListTeknisi;
import com.jasamedika.medifirst2000.entities.ItPelaksanaanPerbaikanSukuCadang;
import com.jasamedika.medifirst2000.entities.ItPerbaikan;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.helper.Caption;

public class ItPelaksanaanPerbaikanVO extends BaseTransactionVO{

	@OneToOne(fetch = FetchType.LAZY)
	@Caption(value = "It Perbaikan")
	private ItPerbaikanVO itPerbaikan;
	
	@Temporal(TemporalType.TIMESTAMP)
	@Caption(value = "Tgl Mulai Periksa")
	private Date tglMulaiPeriksa;
	
	@Caption(value = "Analisa Teknisi")
	private String analisaTeknisi;
	
	@Caption(value = "Analisa Kerusakan")
	private String analisaKerusakan;
	
	@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "itPelaksanaanPerbaikan")
	private Set<ItPelaksanaanPerbaikanSukuCadangVO> itPelaksanaanPerbaikanSukuCadang = new HashSet<>();
	
	@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "itPelaksanaanPerbaikan")
	private Set<ItPelaksanaanPerbaikanListTeknisiVO> itPelaksanaanPerbaikanListTeknisi = new HashSet<>();

	@ManyToOne(fetch = FetchType.LAZY)
	@Caption(value = "User")
	private PegawaiVO user;
	
	@Caption(value = "Status Pengerjaan")
	private Integer statusPengerjaan;
	
	@Caption(value = "Ket Status Respon")
	private String ketStatusRespon;

	@Caption(value = "NoRec It Perbaikan")
	private String noRecItPerbaikan;
	
	@Caption(value = "Jenis Pekerjaan")
	private String jenisPekerjaan;
	
	private Integer userId;
	
	private Integer ruangan;

	public ItPerbaikanVO getItPerbaikan() {
		return itPerbaikan;
	}

	public void setItPerbaikan(ItPerbaikanVO itPerbaikan) {
		this.itPerbaikan = itPerbaikan;
	}

	public Date getTglMulaiPeriksa() {
		return tglMulaiPeriksa;
	}

	public void setTglMulaiPeriksa(Date tglMulaiPeriksa) {
		this.tglMulaiPeriksa = tglMulaiPeriksa;
	}

	public String getAnalisaTeknisi() {
		return analisaTeknisi;
	}

	public void setAnalisaTeknisi(String analisaTeknisi) {
		this.analisaTeknisi = analisaTeknisi;
	}

	public String getAnalisaKerusakan() {
		return analisaKerusakan;
	}

	public void setAnalisaKerusakan(String analisaKerusakan) {
		this.analisaKerusakan = analisaKerusakan;
	}

	public Set<ItPelaksanaanPerbaikanSukuCadangVO> getItPelaksanaanPerbaikanSukuCadang() {
		return itPelaksanaanPerbaikanSukuCadang;
	}

	public void setItPelaksanaanPerbaikanSukuCadang(
			Set<ItPelaksanaanPerbaikanSukuCadangVO> itPelaksanaanPerbaikanSukuCadang) {
		this.itPelaksanaanPerbaikanSukuCadang = itPelaksanaanPerbaikanSukuCadang;
	}

	public Set<ItPelaksanaanPerbaikanListTeknisiVO> getItPelaksanaanPerbaikanListTeknisi() {
		return itPelaksanaanPerbaikanListTeknisi;
	}

	public void setItPelaksanaanPerbaikanListTeknisi(
			Set<ItPelaksanaanPerbaikanListTeknisiVO> itPelaksanaanPerbaikanListTeknisi) {
		this.itPelaksanaanPerbaikanListTeknisi = itPelaksanaanPerbaikanListTeknisi;
	}

	public PegawaiVO getUser() {
		return user;
	}

	public void setUser(PegawaiVO user) {
		this.user = user;
	}

	public Integer getStatusPengerjaan() {
		return statusPengerjaan;
	}

	public void setStatusPengerjaan(Integer statusPengerjaan) {
		this.statusPengerjaan = statusPengerjaan;
	}

	public String getKetStatusRespon() {
		return ketStatusRespon;
	}

	public void setKetStatusRespon(String ketStatusRespon) {
		this.ketStatusRespon = ketStatusRespon;
	}

	public String getNoRecItPerbaikan() {
		return noRecItPerbaikan;
	}

	public void setNoRecItPerbaikan(String noRecItPerbaikan) {
		this.noRecItPerbaikan = noRecItPerbaikan;
	}

	public Integer getUserId() {
		return userId;
	}

	public void setUserId(Integer userId) {
		this.userId = userId;
	}

	public Integer getRuangan() {
		return ruangan;
	}

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

	public String getJenisPekerjaan() {
		return jenisPekerjaan;
	}

	public void setJenisPekerjaan(String jenisPekerjaan) {
		this.jenisPekerjaan = jenisPekerjaan;
	}
	
	

	
	
}
