package com.jasamedika.medifirst2000.entities;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.helper.Caption;

@Entity
@Table(name = "IpsrsMesinGenset_T")
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class IpsrsMesinGenset extends BaseTransaction{

	@OneToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ObjectIpsrsPemakaianMesinFk")
	@Caption(value = "Ipsrs Pemakaian Mesin")
	private IpsrsPemakaianMesin ipsrsPemakaianMesin;

	@Column(name = "ObjectIpsrsPemakaianMesinFk", columnDefinition = "CHAR(32)", nullable=false, insertable = false, updatable = false)
	private String ipsrsPemakaianMesinId;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ObjectMesinFk")
	@Caption(value = "Mesin")
	private Produk mesin;

	@Column(name = "ObjectMesinFk",nullable=false, insertable = false, updatable = false)
	private Integer mesinId;
	
	@NotNull(message = "Pemakaian Awal tidak boleh kosong")
	@Caption(value = "Pemakaian Awal")
	@Column(name = "PemakaianAwal", nullable = false)
	private Date pemakaianAwal;
	
	@NotNull(message = "Pemakaian Awal tidak boleh kosong")
	@Caption(value = "Pemakaian Ahir")
	@Column(name = "PemakaianAhir", nullable = false)
	private Date pemakaianAhir;
	
	@Caption(value = "Lama Pemakaian")
	@Column(name = "LamaPemakaian", nullable = false)
	private String lamaPemakaian;

	public IpsrsPemakaianMesin getIpsrsPemakaianMesin() {
		return ipsrsPemakaianMesin;
	}

	public void setIpsrsPemakaianMesin(IpsrsPemakaianMesin ipsrsPemakaianMesin) {
		this.ipsrsPemakaianMesin = ipsrsPemakaianMesin;
	}

	public String getIpsrsPemakaianMesinId() {
		return ipsrsPemakaianMesinId;
	}

	public void setIpsrsPemakaianMesinId(String ipsrsPemakaianMesinId) {
		this.ipsrsPemakaianMesinId = ipsrsPemakaianMesinId;
	}

	public Produk getMesin() {
		return mesin;
	}

	public void setMesin(Produk mesin) {
		this.mesin = mesin;
	}

	public Integer getMesinId() {
		return mesinId;
	}

	public void setMesinId(Integer mesinId) {
		this.mesinId = mesinId;
	}

	public Date getPemakaianAwal() {
		return pemakaianAwal;
	}

	public void setPemakaianAwal(Date pemakaianAwal) {
		this.pemakaianAwal = pemakaianAwal;
	}

	public Date getPemakaianAhir() {
		return pemakaianAhir;
	}

	public void setPemakaianAhir(Date pemakaianAhir) {
		this.pemakaianAhir = pemakaianAhir;
	}

	public String getLamaPemakaian() {
		return lamaPemakaian;
	}

	public void setLamaPemakaian(String lamaPemakaian) {
		this.lamaPemakaian = lamaPemakaian;
	}

	
}
