package com.jasamedika.medifirst2000.entities;

import java.sql.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
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 = "IpsrsTagihanBusinessCenter_T")
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class IpsrsTagihanBusinessCenter extends BaseTransaction{
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ObjectKapasitasJenisPemakaianFk")
	@Caption(value = "Kapasitas Jenis Pemakaian")
	private IpsrsKapasitasJenisPemakaian ipsrsKapasitasJenisPemakaian;
	
	@Column(name = "ObjectKapasitasJenisPemakaianFk",insertable = false, updatable = false)
	private Integer ipsrsKapasitasJenisPemakaianId;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ObjectRuanganFk")
	@Caption(value = "Ruangan")
	private Rekanan ruangan;
	
	@Column(name = "ObjectRuanganFk",insertable = false, updatable = false)
	private Integer ruanganId;
	
	@NotNull(message = "Periode tidak boleh kososng")
	@Caption(value = "Periode")
	@Column(name = "Periode", nullable = false)
	private Date periode;
	
	@NotNull(message = "Jumlah Meter Awal tidak boleh kosong")
	@Caption(value = "Jumlah Meter Awal")
	@Column(name = "JumlahMeterAwal", nullable = false)
	private float jumlahMeterAwal;
	
	@Caption(value = "Jumlah Meter Ahir")
	@Column(name = "JumlahMeterAhir", nullable = true)
	private float jumlahMeterAhir;
	
	@Caption(value = "Jumlah Pemakaian")
	@Column(name = "JumlahPemakaian", nullable = true)
	private float jumlahPemakaian;
	
	@Caption(value = "Biaya/Bulan")
	@Column(name = "BiayaPerBulan", nullable = true)
	private Double biayaPerBulan;

	public IpsrsKapasitasJenisPemakaian getIpsrsKapasitasJenisPemakaian() {
		return ipsrsKapasitasJenisPemakaian;
	}

	public void setIpsrsKapasitasJenisPemakaian(IpsrsKapasitasJenisPemakaian ipsrsKapasitasJenisPemakaian) {
		this.ipsrsKapasitasJenisPemakaian = ipsrsKapasitasJenisPemakaian;
	}

	public Integer getIpsrsKapasitasJenisPemakaianId() {
		return ipsrsKapasitasJenisPemakaianId;
	}

	public void setIpsrsKapasitasJenisPemakaianId(Integer ipsrsKapasitasJenisPemakaianId) {
		this.ipsrsKapasitasJenisPemakaianId = ipsrsKapasitasJenisPemakaianId;
	}

	public Rekanan getRuangan() {
		return ruangan;
	}

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

	public Integer getRuanganId() {
		return ruanganId;
	}

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

	public Date getPeriode() {
		return periode;
	}

	public void setPeriode(Date periode) {
		this.periode = periode;
	}

	public float getJumlahMeterAwal() {
		return jumlahMeterAwal;
	}

	public void setJumlahMeterAwal(float jumlahMeterAwal) {
		this.jumlahMeterAwal = jumlahMeterAwal;
	}

	public float getJumlahMeterAhir() {
		return jumlahMeterAhir;
	}

	public void setJumlahMeterAhir(float jumlahMeterAhir) {
		this.jumlahMeterAhir = jumlahMeterAhir;
	}

	public float getJumlahPemakaian() {
		return jumlahPemakaian;
	}

	public void setJumlahPemakaian(float jumlahPemakaian) {
		this.jumlahPemakaian = jumlahPemakaian;
	}

	public Double getBiayaPerBulan() {
		return biayaPerBulan;
	}

	public void setBiayaPerBulan(Double biayaPerBulan) {
		this.biayaPerBulan = biayaPerBulan;
	}

}
