package com.jasamedika.medifirst2000.entities;

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

import javax.persistence.*;

@Getter
@Setter
@Entity
@Table(name = "MappingKirimDokumenPasien_T")
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
public class MappingKirimDokumenPasien extends BaseTransaction {

	@ManyToOne
	@JoinColumn(name = "ObjectStrukKirimFk")
	@Caption(value = "Object Struk Kirim")
	private StrukKirim strukKirim;

	@Column(name = "ObjectStrukKirimFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false)
	private String strukKirimId;

	@ManyToOne
	@JoinColumn(name = "ObjectDokumenRekamMedisFk")
	@Caption(value = "Object Dokumen Rekam Medis")
	private DokumenRekamMedis dokumenRekamMedis;

	@Column(name = "ObjectDokumenRekamMedisFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false)
	private String dokumenRekamMedisId;

	@ManyToOne
	@JoinColumn(name = "ObjectStrukPelayananFk")
	@Caption(value = "Object Struk Pelayanan")
	private StrukPelayanan strukPelayanan;

	@Column(name = "ObjectStrukPelayananFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false)
	private String strukPelayananId;

	@ManyToOne
	@JoinColumn(name = "DokumenMasukFk")
	@Caption(value = "Object Dokumen Masuk")
	private DokumenMasuk dokumenMasuk;

	@Column(name = "DokumenMasukFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false)
	private String dokumenMasukId;

	@ManyToOne
	@JoinColumn(name = "ObjectPegawaiTujuanLastFk")
	@Caption(value = "Object Pegawai Tujuan Last")
	private LoginUser kdpegawaitujuanlast;

	@Column(name = "ObjectPegawaiTujuanLastFk", insertable = false, updatable = false)
	private Integer ObjectPegawaiTujuanLastId;

	@ManyToOne
	@JoinColumn(name = "ObjectRuanganTujuanLastFk")
	@Caption(value = "Object Ruangan Tujuan Last")
	private Ruangan kdruangantujuanlast;

	@Column(name = "ObjectRuanganTujuanLastFk", insertable = false, updatable = false)
	private Integer ObjectRuanganTujuanLastId;

	@ManyToOne
	@JoinColumn(name = "RuanganTujuanSuratMasukFk")
	@Caption(value = "Object Ruangan Tujuan Surat Masuk")
	private Ruangan ruanganTujuan;

	@Column(name = "RuanganTujuanSuratMasukFk", insertable = false, updatable = false)
	private Integer ruanganTujuanId;

	@ManyToOne
	@JoinColumn(name = "PasienFk")
	private Pasien pasien;

	@Column(name = "PasienFk", insertable = false, updatable = false)
	private Integer pasienId;

	@ManyToOne
	@JoinColumn(name = "DokumenFk")
	private Dokumen dokumen;

	@Column(name = "DokumenFk", insertable = false, updatable = false)
	private Integer dokumenId;

	@ManyToOne
	@JoinColumn(name = "PasienDaftarFk")
	private PasienDaftar pasienDaftar;

	@Column(name = "PasienDaftarFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false)
	private String pasienDaftarId;

	@ManyToOne
	@JoinColumn(name = "PasienDiPeriksaFk")
	private AntrianPasienDiPeriksa pasienDiPeriksa;

	@Column(name = "PasienDiPeriksaFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false)
	private String pasienDiPeriksaId;

	@Column(name = "Status", length = 100)
	@Caption(value = "Status")
	private String status;

	@ManyToOne
	@JoinColumn(name = "NoTerimaFk")
	@Caption(value = "No Terima")
	private StrukPelayanan noTerima;

}
