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.*;
import javax.validation.constraints.NotNull;
import java.util.Date;

import static javax.persistence.FetchType.LAZY;

/**
 *  class DokumenInternal
 * 
 * @author Generator
 */
@Getter
@Setter
@Entity
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
@Table(name = "DokumenInternal_T")
public class DokumenInternal extends BaseTransaction {

	@ManyToOne(fetch=LAZY)
	@JoinColumn(name = "ObjectDokumenFk")
	@NotNull(message="Object Dokumen Harus Diisi")
	@Caption(value="Object Dokumen")
	private Dokumen kddokumen;

	@Column(name = "ObjectDokumenFk", insertable=false,updatable=false)
	private Integer ObjectDokumenId;

	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "ObjectPegawaiTujuanFk")
	@Caption(value="Object Pegawai Tujuan")
	private Pegawai kdpegawaitujuan;

	@Column(name = "ObjectPegawaiTujuanFk", insertable=false,updatable=false)
	private Integer ObjectPegawaiTujuanId;

	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "ObjectRuanganTujuanFk")
	@Caption(value="Object Ruangan Tujuan")
	private Ruangan kdruangantujuan;

	@Column(name = "ObjectRuanganTujuanFk", insertable=false,updatable=false)
	private Integer ObjectRuanganTujuanId;

	@Caption(value="Keterangan Lainnya")
	@Column(name = "KeteranganLainnya", length = 150)
	private String keteranganlainnya;

	@Caption(value="No Dokumen_ Intern")
	@Column(name = "NoDokumen_Intern", length = 30)
	private String nodokumen_intern;

	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "NoKirimFk")
	@Caption(value="No Kirim")
	private StrukKirim nokirim;

	@Column(name = "NoKirimFk", insertable=false,updatable=false)
	private String NoKirimId;

	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "NoStruk_TFk")
	@Caption(value="No Struk_ T")
	private StrukPelayanan nostruk_t;

	@Column(name = "NoStruk_TFk", insertable=false,updatable=false)
	private String NoStruk_TId;

	@Column(name = "NoTerima")
	@Caption(value="Nomor Terima")
	private String noTerima;
	
	@Column(name = "TglTerima")
	@Caption(value="Tgl Terima")
	private Date tglTerima;
	
	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "ObjectPegawaiPenerimaSuratFk")
	@Caption(value="User Penerima Surat")
	private Pegawai PegawaiPenerimaSurat;
	
	@Column(name = "ObjectPegawaiPenerimaSuratFk", insertable=false,updatable=false)
	private Integer PegawaiPenerimaSuratId;
	
	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "ObjectRuanganPenerimaFk")
	@Caption(value="Ruangan Penerima")
	private Ruangan ruanganPenerima;
	
	@Column(name = "ObjectRuanganPenerimaFk", insertable=false,updatable=false)
	private Integer ruanganPenerimaId;
	
	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "ObjectRuanganPengirimFk")
	@Caption(value="Ruangan Penerima")
	private Ruangan ruanganPengirim;
	
	@Column(name = "ObjectRuanganPengirimFk", insertable=false,updatable=false)
	private Integer ruanganPengirimId;
	
	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "ObjectTipePengirimSuratFk")
	@Caption(value="Tipe Pengirim Surat")
	private TipePengirimSurat tipePengirimSurat;
	
	@Column(name = "ObjectTipePengirimSuratFk", insertable=false,updatable=false)
	private Integer tipePengirimSuratId;
	
	@Column(name = "tglSurat")
	@Caption(value="Tgl Surat")
	private Date tglSurat;
	
	@Column(name = "Perihal")
	@Caption(value="Perihal")
	private String perihal;
	
	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "ObjectUserPengirimSuratFk")
	@Caption(value="Pegawai Pengirim Surat")
	private Pegawai userPengirimSurat;
	
	@Column(name = "ObjectUserPengirimSuratFk", insertable=false,updatable=false)
	private Integer userPengirimSuratId;
	
	@Column(name = "AlamatPengirim")
	@Caption(value="Alamat Pengirim")
	private String alamatPengirim;
	
	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "ObjectSifatSuratFk")
	@Caption(value="Sifat Surat")
	private SifatSurat sifatSurat;
	
	@Column(name = "ObjectSifatSuratFk", insertable=false,updatable=false)
	private Integer sifatSuratId;
	
	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "ObjectStatusBerkasFk")
	@Caption(value="Status Berkas")
	private StatusBerkas statusBerkas;
	
	@Column(name = "ObjectSifatSuratFk", insertable=false,updatable=false)
	private Integer statusBerkasId;
	
	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "ObjectJenisArsipFk")
	@Caption(value="statusKeaktifanJenisArsip")
	private JenisArsip jenisArsip;
	
	@Column(name = "ObjectJenisArsipFk", insertable=false,updatable=false)
	private Integer jenisArsipId;

	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "ObjectKlasifikasiArsipFk")
	@Caption(value="KlasifikasiArsip")
	private KlasifikasiArsip klasifikasiArsip;
	
	@Column(name = "ObjectKlasifikasiArsipFk", insertable=false,updatable=false)
	private Integer klasifikasiArsipId;
	
	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "ObjectSubKlasifikasiArsipFk")
	@Caption(value="SubKlasifikasiArsip")
	private SubKlasifikasiArsip subKlasifikasiArsip;
	
	@Column(name = "ObjectSubKlasifikasiArsipFk", insertable=false,updatable=false)
	private Integer subKlasifikasiArsipId;

	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "ObjectStatusVerifikasiFk")
	@Caption(value="statusKeaktifanJenisArsip")
	private StatusYaTidak statusVerifikasi;
	
	@Column(name = "ObjectStatusVerifikasiFk", insertable=false,updatable=false)
	private Integer statusVerifikasiId;
	
	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "ObjectStatusYaTidakKeaktifanFk")
	@Caption(value="statusKeaktifanJenisArsip")
	private StatusYaTidak statusKeaktifan;
	
	@Column(name = "ObjectStatusYaTidakKeaktifanFk", insertable=false,updatable=false)
	private Integer statusKeaktifanId;
	
	@ManyToOne(fetch= LAZY)
	@JoinColumn(name = "ObjectJenisSuratFk")
	@Caption(value="Jenis Surat")
	private JenisSurat jenisSurat;
	
	@Column(name = "ObjectJenisSuratFk", insertable=false,updatable=false)
	private Integer jenisSuratId;

}

