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 Profile
 * 
 * @author Generator
 */
@Entity // @Audited
@Table(name = "Profile_M")
public class Profile extends BaseMaster {
	@Column(name = "AlamatEmail", nullable = true, length = 50)
	@Caption(value = "Alamat Email")
	private String alamatEmail;

	public void setAlamatEmail(String alamatEmail) {
		this.alamatEmail = alamatEmail;
	}

	public String getAlamatEmail() {
		return this.alamatEmail;
	}

	@Column(name = "AlamatLengkap", nullable = true, length = 200)
	@Caption(value = "Alamat Lengkap")
	private String alamatLengkap;

	public void setAlamatLengkap(String alamatLengkap) {
		this.alamatLengkap = alamatLengkap;
	}

	public String getAlamatLengkap() {
		return this.alamatLengkap;
	}

	@Column(name = "Faksimile", nullable = true, length = 30)
	@Caption(value = "Faksimile")
	private String faksimile;

	public void setFaksimile(String faksimile) {
		this.faksimile = faksimile;
	}

	public String getFaksimile() {
		return this.faksimile;
	}

	@Column(name = "FixedPhone", nullable = true, length = 30)
	@Caption(value = "Fixed Phone")
	private String fixedPhone;

	public void setFixedPhone(String fixedPhone) {
		this.fixedPhone = fixedPhone;
	}

	public String getFixedPhone() {
		return this.fixedPhone;
	}

	@Column(name = "GambarLogo", nullable = true, length = 100)
	@Caption(value = "Gambar Logo")
	private String gambarLogo;

	public void setGambarLogo(String gambarLogo) {
		this.gambarLogo = gambarLogo;
	}

	public String getGambarLogo() {
		return this.gambarLogo;
	}

	@ManyToOne
	@JoinColumn(name = "ObjectAccountFk")

	@Caption(value = "Object Account")
	private ChartOfAccount account;

	public void setAccount(ChartOfAccount account) {
		this.account = account;
	}

	public ChartOfAccount getAccount() {
		return this.account;
	}

	@Column(name = "ObjectAccountFk", insertable = false, updatable = false)
	private Integer accountId;

	@ManyToOne
	@JoinColumn(name = "ObjectDepartemenFk")

	@Caption(value = "Object Departemen")
	private Departemen departemen;

	public void setDepartemen(Departemen departemen) {
		this.departemen = departemen;
	}

	public Departemen getDepartemen() {
		return this.departemen;
	}

	@Column(name = "ObjectDepartemenFk", insertable = false, updatable = false)
	private Integer departemenId;

	@ManyToOne
	@JoinColumn(name = "ObjectDesaKelurahanFk")

	@Caption(value = "Object Desa Kelurahan")
	private DesaKelurahan desaKelurahan;

	public void setDesaKelurahan(DesaKelurahan desaKelurahan) {
		this.desaKelurahan = desaKelurahan;
	}

	public DesaKelurahan getDesaKelurahan() {
		return this.desaKelurahan;
	}

	@Column(name = "ObjectDesaKelurahanFk", insertable = false, updatable = false)
	private Integer desaKelurahanId;

	@ManyToOne
	@JoinColumn(name = "ObjectJenisProfileFk")
	@NotNull(message = "Kd Jenis Profile tidak boleh kosong")

	@Caption(value = "Object Jenis Profile")
	private JenisProfile jenisProfile;

	public void setJenisProfile(JenisProfile jenisProfile) {
		this.jenisProfile = jenisProfile;
	}

	public JenisProfile getJenisProfile() {
		return this.jenisProfile;
	}

	@Column(name = "ObjectJenisProfileFk", insertable = false, updatable = false)
	private Integer jenisProfileId;

	@ManyToOne
	@JoinColumn(name = "ObjectJenisTarifFk")

	@Caption(value = "Object Jenis Tarif")
	private JenisTarif jenisTarif;

	public void setJenisTarif(JenisTarif jenisTarif) {
		this.jenisTarif = jenisTarif;
	}

	public JenisTarif getJenisTarif() {
		return this.jenisTarif;
	}

	@Column(name = "ObjectJenisTarifFk", insertable = false, updatable = false, nullable = false)
	private Integer jenisTarifId;

	@ManyToOne
	@JoinColumn(name = "ObjectKecamatanFk")

	@Caption(value = "Object Kecamatan")
	private Kecamatan kecamatan;

	public void setKecamatan(Kecamatan kecamatan) {
		this.kecamatan = kecamatan;
	}

	public Kecamatan getKecamatan() {
		return this.kecamatan;
	}

	@Column(name = "ObjectKecamatanFk", insertable = false, updatable = false)
	private Integer kecamatanId;

	@ManyToOne
	@JoinColumn(name = "ObjectKelasLevelFk")

	@Caption(value = "Object Kelas Level")
	private DetailKamar kelasLevel;

	public void setKelasLevel(DetailKamar kelasLevel) {
		this.kelasLevel = kelasLevel;
	}

	public DetailKamar getKelasLevel() {
		return this.kelasLevel;
	}

	@Column(name = "ObjectKelasLevelFk", insertable = false, updatable = false)
	private Integer kelasLevelId;

	@ManyToOne
	@JoinColumn(name = "ObjectKotaKabupatenFk")

	@Caption(value = "Object Kota Kabupaten")
	private KotaKabupaten kotaKabupaten;

	public void setKotaKabupaten(KotaKabupaten kotaKabupaten) {
		this.kotaKabupaten = kotaKabupaten;
	}

	public KotaKabupaten getKotaKabupaten() {
		return this.kotaKabupaten;
	}

	@Column(name = "ObjectKotaKabupatenFk", insertable = false, updatable = false)
	private Integer kotaKabupatenId;

	@ManyToOne
	@JoinColumn(name = "ObjectPegawaiKepalaFk")

	@Caption(value = "Object Pegawai Kepala")
	private LoginUser pegawaiKepala;

	public void setPegawaiKepala(LoginUser pegawaiKepala) {
		this.pegawaiKepala = pegawaiKepala;
	}

	public LoginUser getPegawaiKepala() {
		return this.pegawaiKepala;
	}

	@Column(name = "ObjectPegawaiKepalaFk", insertable = false, updatable = false)
	private Integer pegawaiKepalaId;

	@ManyToOne
	@JoinColumn(name = "ObjectPemilikProfileFk")

	@Caption(value = "Object Pemilik Profile")
	private PemilikProfile pemilikProfile;

	public void setPemilikProfile(PemilikProfile pemilikProfile) {
		this.pemilikProfile = pemilikProfile;
	}

	public PemilikProfile getPemilikProfile() {
		return this.pemilikProfile;
	}

	@Column(name = "ObjectPemilikProfileFk", insertable = false, updatable = false)
	private Integer pemilikProfileId;

	@ManyToOne
	@JoinColumn(name = "ObjectPropinsiFk")

	@Caption(value = "Object Propinsi")
	private Propinsi propinsi;

	public void setPropinsi(Propinsi propinsi) {
		this.propinsi = propinsi;
	}

	public Propinsi getPropinsi() {
		return this.propinsi;
	}

	@Column(name = "ObjectPropinsiFk", insertable = false, updatable = false)
	private Integer propinsiId;

	@ManyToOne
	@JoinColumn(name = "ObjectSatuanKerjaFk")
	@NotNull(message = "Kd Satuan Kerja tidak boleh kosong")

	@Caption(value = "Object Satuan Kerja")
	private SatuanKerja satuanKerja;

	public void setSatuanKerja(SatuanKerja satuanKerja) {
		this.satuanKerja = satuanKerja;
	}

	public SatuanKerja getSatuanKerja() {
		return this.satuanKerja;
	}

	@Column(name = "ObjectSatuanKerjaFk", insertable = false, updatable = false)
	private Integer satuanKerjaId;

	@ManyToOne
	@JoinColumn(name = "ObjectStatusAkreditasiLastFk")

	@Caption(value = "Object Status Akreditasi Last")
	private StatusAkreditasi statusAkreditasiLast;

	public void setStatusAkreditasiLast(StatusAkreditasi statusAkreditasiLast) {
		this.statusAkreditasiLast = statusAkreditasiLast;
	}

	public StatusAkreditasi getStatusAkreditasiLast() {
		return this.statusAkreditasiLast;
	}

	@Column(name = "ObjectStatusAkreditasiLastFk", insertable = false, updatable = false, nullable = false)
	private Integer statusAkreditasiLastId;

	@ManyToOne
	@JoinColumn(name = "ObjectStatusSuratIjinLastFk")

	@Caption(value = "Object Status Surat Ijin Last")
	private StatusSuratIjin statusSuratIjinLast;

	public void setStatusSuratIjinLast(StatusSuratIjin statusSuratIjinLast) {
		this.statusSuratIjinLast = statusSuratIjinLast;
	}

	public StatusSuratIjin getStatusSuratIjinLast() {
		return this.statusSuratIjinLast;
	}

	@Column(name = "ObjectStatusSuratIjinLastFk", insertable = false, updatable = false)
	private Integer statusSuratIjinLastId;

	@ManyToOne
	@JoinColumn(name = "ObjectTahapanAkreditasiLastFk")

	@Caption(value = "Object Tahapan Akreditasi Last")
	private TahapanAkreditasi tahapanAkreditasiLast;

	public void setahapanAkreditasiLast(TahapanAkreditasi tahapanAkreditasiLast) {
		this.tahapanAkreditasiLast = tahapanAkreditasiLast;
	}

	public TahapanAkreditasi getTahapanAkreditasiLast() {
		return this.tahapanAkreditasiLast;
	}

	@Column(name = "ObjectTahapanAkreditasiLastFk", insertable = false, updatable = false)
	private Integer tahapanAkreditasiLastId;

	@Column(name = "KodePos", nullable = true, length = 10)
	@Caption(value = "Kode Pos")
	private String kodePos;

	public void setKdPos(String kodePos) {
		this.kodePos = kodePos;
	}

	public String getKdPos() {
		return this.kodePos;
	}

	@Column(name = "LuasBangunan", nullable = true)
	@Caption(value = "Luas Bangunan")
	private Double luasBangunan;

	public void setLuasBangunan(Double luasBangunan) {
		this.luasBangunan = luasBangunan;
	}

	public Double getLuasBangunan() {
		return this.luasBangunan;
	}

	@Column(name = "LuasTanah", nullable = true)
	@Caption(value = "Luas Tanah")
	private Double luasTanah;

	public void setLuasTanah(Double luasTanah) {
		this.luasTanah = luasTanah;
	}

	public Double getLuasTanah() {
		return this.luasTanah;
	}

	@NotNull(message = "Message To Pasien tidak boleh kosong")
	@Column(name = "MessageToPasien", nullable = false, length = 150)
	@Caption(value = "Message To Pasien")
	private String messageToPasien;

	public void setMessageToPasien(String messageToPasien) {
		this.messageToPasien = messageToPasien;
	}

	public String getMessageToPasien() {
		return this.messageToPasien;
	}

	@Column(name = "MobilePhone", nullable = true, length = 30)
	@Caption(value = "Mobile Phone")
	private String mobilePhone;

	public void setMobilePhone(String mobilePhone) {
		this.mobilePhone = mobilePhone;
	}

	public String getMobilePhone() {
		return this.mobilePhone;
	}

	@Column(name = "MottoSemboyan", nullable = true, length = 100)
	@Caption(value = "Motto Semboyan")
	private String mottoSemboyan;

	public void setMottoSemboyan(String mottoSemboyan) {
		this.mottoSemboyan = mottoSemboyan;
	}

	public String getMottoSemboyan() {
		return this.mottoSemboyan;
	}

	@NotNull(message = "Nama Lengkap tidak boleh kosong")
	@Column(name = "NamaLengkap", nullable = false, length = 100)
	@Caption(value = "Nama Lengkap")
	private String namaLengkap;

	public void setNamaLengkap(String namaLengkap) {
		this.namaLengkap = namaLengkap;
	}

	public String getNamaLengkap() {
		return this.namaLengkap;
	}

	@Column(name = "NoPKP", nullable = true, length = 40)
	@Caption(value = "No P K P")
	private String noPKP;

	public void setNoPKP(String noPKP) {
		this.noPKP = noPKP;
	}

	public String getNoPKP() {
		return this.noPKP;
	}

	@Column(name = "NoSuratIjinLast", nullable = true, length = 20)
	@Caption(value = "No Surat Ijin Last")
	private String noSuratIjinLast;

	public void setNoSuratIjinLast(String noSuratIjinLast) {
		this.noSuratIjinLast = noSuratIjinLast;
	}

	public String getNoSuratIjinLast() {
		return this.noSuratIjinLast;
	}

	@Column(name = "NPWP", nullable = true, length = 30)
	@Caption(value = "NP W P")
	private String nPWP;

	public void setNPWP(String nPWP) {
		this.nPWP = nPWP;
	}

	public String getNPWP() {
		return this.nPWP;
	}

	@NotNull(message = "QProfile tidak boleh kosong")
	@Column(name = "QProfile", nullable = false)
	@Caption(value = "QProfile")
	private Byte qProfile;

	public void setqProfile(Byte qProfile) {
		this.qProfile = qProfile;
	}

	public Byte getqProfile() {
		return this.qProfile;
	}

	@Column(name = "RTRW", nullable = true, length = 7)
	@Caption(value = "RT R W")
	private String rTRW;

	public void setRTRW(String rTRW) {
		this.rTRW = rTRW;
	}

	public String getRTRW() {
		return this.rTRW;
	}

	@Column(name = "SignatureByLast", nullable = true, length = 80)
	@Caption(value = "Signature By Last")
	private String signatureByLast;

	public void setSignatureByLast(String signatureByLast) {
		this.signatureByLast = signatureByLast;
	}

	public String getSignatureByLast() {
		return this.signatureByLast;
	}

	@Column(name = "TglAkreditasiLast", nullable = true)
	@Caption(value = "Tanggal Akreditasi Last")
	private Date tglAkreditasiLast;

	public void setTglAkreditasiLast(Date tglAkreditasiLast) {
		this.tglAkreditasiLast = tglAkreditasiLast;
	}

	public Date getTglAkreditasiLast() {
		return this.tglAkreditasiLast;
	}

	@Column(name = "TglRegistrasi", nullable = true)
	@Caption(value = "Tanggal Registrasi")
	private Date tglRegistrasi;

	public void setTglRegistrasi(Date tglRegistrasi) {
		this.tglRegistrasi = tglRegistrasi;
	}

	public Date getTglRegistrasi() {
		return this.tglRegistrasi;
	}

	@Column(name = "TglSuratIjinExpiredLast", nullable = true)
	@Caption(value = "Tanggal Surat Ijin Expired Last")
	private Date tglSuratIjinExpiredLast;

	public void setTglSuratIjinExpiredLast(Date tglSuratIjinExpiredLast) {
		this.tglSuratIjinExpiredLast = tglSuratIjinExpiredLast;
	}

	public Date getTglSuratIjinExpiredLast() {
		return this.tglSuratIjinExpiredLast;
	}

	@Column(name = "TglSuratIjinLast", nullable = true)
	@Caption(value = "Tanggal Surat Ijin Last")
	private Date tglSuratIjinLast;

	public void setTglSuratIjinLast(Date tglSuratIjinLast) {
		this.tglSuratIjinLast = tglSuratIjinLast;
	}

	public Date getTglSuratIjinLast() {
		return this.tglSuratIjinLast;
	}

	@Column(name = "Website", nullable = true, length = 80)
	@Caption(value = "Website")
	private String website;

	public void setWebsite(String website) {
		this.website = website;
	}

	public String getWebsite() {
		return this.website;
	}

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

	public Integer getId() {

		return id;
	}

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