package com.jasamedika.medifirst2000.entities;

import java.io.Serializable;
import org.hibernate.envers.Audited;
import java.util.Date;

import javax.persistence.*;

import org.hibernate.validator.constraints.NotEmpty;

import com.jasamedika.medifirst2000.base.BaseMaster;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.internal.util.logging.Messages;

import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.jasamedika.medifirst2000.base.BaseMaster;
import com.jasamedika.medifirst2000.helper.Caption;
import org.hibernate.envers.Audited;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

/**
 * class AsuransiPasienBerlaku
 * 
 * @author Generator
 */
@Entity // @Audited
@Table(name = "AsuransiPasienBerlaku_M")
public class AsuransiPasienBerlaku extends BaseMaster {
	@Caption(value = "Is Collective Plafon")
	private Byte isCollectivePlafon;

	@NotNull(message = "Is Collective Plafon tidak boleh kosong")
	@Column(name = "isCollectivePlafon", nullable = false)
	public Byte getIsCollectivePlafon() {
		return isCollectivePlafon;
	}

	public void setIsCollectivePlafon(Byte isCollectivePlafon) {
		this.isCollectivePlafon = isCollectivePlafon;
	}

	@ManyToOne
	@JoinColumn(name = "ObjectHubunganPesertaFk")
	@NotNull(message = "Kd Hubungan Peserta tidak boleh kosong")

	@Caption(value = "Object Hubungan Peserta")
	private HubunganPesertaAsuransi hubunganPeserta;

	public void setHubunganPeserta(HubunganPesertaAsuransi hubunganPeserta) {
		this.hubunganPeserta = hubunganPeserta;
	}

	public HubunganPesertaAsuransi getHubunganPeserta() {
		return this.hubunganPeserta;
	}

	@Column(name = "ObjectHubunganPesertaFk", insertable = false, updatable = false)
	private Integer hubunganPesertaId;

	public Integer getHubunganPesertaId() {
		return hubunganPesertaId;
	}

	public void setHubunganPesertaId(Integer hubunganPesertaId) {
		this.hubunganPesertaId = hubunganPesertaId;
	}

	@Caption(value = "Kode Penjamin Pasien")
	private short kdPenjaminPasien;

	@NotNull(message = "Kd Penjamin Pasien tidak boleh kosong")
	@Column(name = "KdPenjaminPasien", nullable = false)
	public short getKdPenjaminPasien() {
		return kdPenjaminPasien;
	}

	public void setKdPenjaminPasien(short kdPenjaminPasien) {
		this.kdPenjaminPasien = kdPenjaminPasien;
	}

	@NotNull(message = "No Asuransi tidak boleh kosong")
	@Column(name = "NoAsuransi", nullable = false, length = 30)
	@Caption(value = "No Asuransi")
	private String noAsuransi;

	public void setNoAsuransi(String noAsuransi) {
		this.noAsuransi = noAsuransi;
	}

	public String getNoAsuransi() {
		return this.noAsuransi;
	}

	@Caption(value = "Tanggal Akhir Berlaku")
	private Date tglAkhirBerlaku;

	@Column(name = "TglAkhirBerlaku", nullable = true)
	public Date getTglAkhirBerlaku() {
		return tglAkhirBerlaku;
	}

	public void setTglAkhirBerlaku(Date tglAkhirBerlaku) {
		this.tglAkhirBerlaku = tglAkhirBerlaku;
	}

	@Caption(value = "Tanggal Mulai Berlaku")
	private Date tglMulaiBerlaku;

	@NotNull(message = "Tgl Mulai Berlaku tidak boleh kosong")
	@Column(name = "TglMulaiBerlaku", nullable = false)
	public Date getTglMulaiBerlaku() {
		return tglMulaiBerlaku;
	}

	public void setTglMulaiBerlaku(Date tglMulaiBerlaku) {
		this.tglMulaiBerlaku = tglMulaiBerlaku;
	}

	@NotNull(message = "Total Current Terpakai tidak boleh kosong")
	@Column(name = "TotalCurrentTerpakai", nullable = false)
	@Caption(value = "Total Current Terpakai")
	private Double totalCurrentTerpakai;

	public void setTotalCurrentTerpakai(Double totalCurrentTerpakai) {
		this.totalCurrentTerpakai = totalCurrentTerpakai;
	}

	public Double getTotalCurrentTerpakai() {
		return this.totalCurrentTerpakai;
	}

	@NotNull(message = "Total Plafon Tanggungan tidak boleh kosong")
	@Column(name = "TotalPlafonTanggungan", nullable = false)
	@Caption(value = "Total Plafon Tanggungan")
	private Double totalPlafonTanggungan;

	public void setTotalPlafonTanggungan(Double totalPlafonTanggungan) {
		this.totalPlafonTanggungan = totalPlafonTanggungan;
	}

	public Double getTotalPlafonTanggungan() {
		return this.totalPlafonTanggungan;
	}

	@NotNull(message = "Total Saldo Tanggungan tidak boleh kosong")
	@Column(name = "TotalSaldoTanggungan", nullable = false)
	@Caption(value = "Total Saldo Tanggungan")
	private Double totalSaldoTanggungan;

	public void setTotalSaldoTanggungan(Double totalSaldoTanggungan) {
		this.totalSaldoTanggungan = totalSaldoTanggungan;
	}

	public Double getTotalSaldoTanggungan() {
		return this.totalSaldoTanggungan;
	}

	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "public.asuransipasienberlaku_m_id_seq")
	@javax.persistence.SequenceGenerator(name = "public.asuransipasienberlaku_m_id_seq", sequenceName = "public.asuransipasienberlaku_m_id_seq", allocationSize = 1)
	@Column(name = "id")
	protected Integer id;

	public Integer getId() {

		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}
}