package com.jasamedika.medifirst2000.vo;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.entities.JenisKartuDetail;
import com.jasamedika.medifirst2000.helper.Caption;

@Entity
@Table(name = "AntrianPasienRegistrasiDetail_T")
public class AntrianPasienRegistrasiDetailVO extends BaseTransactionVO{
	@Column(name = "merchantInvoiceNo",length=20)
	@Caption(value="Merchant Invoice No")
	private String merchantInvoiceNo;
	
	@Column(name = "amount")
	@Caption(value="Amount")
	private Long amount;
	
	@ManyToOne
	@JoinColumn(name = "ObjectJenisKartuFk")
	@Caption(value="Object Jenis Kartu")
	private JenisKartuVO jenisKartu;
	
	@Column(name = "ObjectKartuKreditFk", insertable=false,updatable=false)
	private Integer jenisKartuId;

	@ManyToOne
	@JoinColumn(name = "ObjectCaraBayarFk")
	@Caption(value="Object Cara Bayar")
	private CaraBayarVO caraBayar;
	
	@Column(name = "ObjectKartuKreditFk", insertable=false,updatable=false)
	private Integer caraBayarId;

	public String getMerchantInvoiceNo() {
		return merchantInvoiceNo;
	}
	public void setMerchantInvoiceNo(String merchantInvoiceNo) {
		this.merchantInvoiceNo = merchantInvoiceNo;
	}
	public Long getAmount() {
		return amount;
	}
	public void setAmount(Long amount) {
		this.amount = amount;
	}
	public JenisKartuVO getJenisKartu() {
		return jenisKartu;
	}
	public void setJenisKartu(JenisKartuVO jenisKartu) {
		this.jenisKartu = jenisKartu;
	}
	public CaraBayarVO getCaraBayar() {
		return caraBayar;
	}
	public void setCaraBayar(CaraBayarVO caraBayar) {
		this.caraBayar = caraBayar;
	}

	@OneToOne
	@JoinColumn(name = "ObjectAntrianPasienRegistrasiFK")
	@Caption(value="AntrianPasienRegistrasi")
	private AntrianPasienRegistrasiVO antrianPasienRegistrasi;

	public AntrianPasienRegistrasiVO getAntrianPasienRegistrasi() {
		return antrianPasienRegistrasi;
	}

	public void setAntrianPasienRegistrasi(AntrianPasienRegistrasiVO antrianPasienRegistrasi) {
		this.antrianPasienRegistrasi = antrianPasienRegistrasi;
	}

	@Column(name = "ObjectAntrianPasienRegistrasiFK", insertable=false,updatable=false,nullable = true )
	private String antrianPasienRegistrasiId;

	@ManyToOne
	@JoinColumn(name = "ObjectJenisKartuDetailFk")
	@Caption(value="Object AntrianPasienRegistrasiDetail")
	private JenisKartuDetailVO jenisKartuDetail;
	
	@Column(name = "ObjectJenisKartuDetailFk", insertable=false,updatable=false)
	private Integer jenisKartuDetailId;

	public JenisKartuDetailVO getJenisKartuDetail() {
		return jenisKartuDetail;
	}
	public void setJenisKartuDetail(JenisKartuDetailVO jenisKartuDetail) {
		this.jenisKartuDetail = jenisKartuDetail;
	}
}
