package com.jasamedika.medifirst2000.entities;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.*;
import com.jasamedika.medifirst2000.entities.TipeKeanggotaan;
import com.jasamedika.medifirst2000.entities.JenisKelamin;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.jasamedika.medifirst2000.base.BaseTransaction;

import javax.validation.constraints.NotNull;
import com.jasamedika.medifirst2000.helper.Caption;

/**
 * class RegistrasiKeanggotaan
 * 
 * @author Generator
 */
@Entity
@Table(name = "sdm_RegistrasiKeanggotaan_T")
public class RegistrasiKeanggotaan extends BaseTransaction {
	@Column(name = "NomorAnggota", nullable = false, length = 100)
	@Caption(value = "NomorAnggota")
	private String nomorAnggota;

	public String getNomorAnggota() {
		return nomorAnggota;
	}

	public void setNomorAnggota(String nomorAnggota) {
		this.nomorAnggota = nomorAnggota;
	}

	@ManyToOne
	@JoinColumn(name = "TipeKeanggotaanFk")
//	@NotNull(message = "Tipe Keanggotaan Harus Diisi")
	@Caption(value = "Tipe Keanggotaan")
	private TipeKeanggotaan tipeKeanggotaan;

	public TipeKeanggotaan getTipeKeanggotaan() {
		return tipeKeanggotaan;
	}

	public void setTipeKeanggotaan(TipeKeanggotaan tipeKeanggotaan) {
		this.tipeKeanggotaan = tipeKeanggotaan;
	}

	@Column(name = "TipeKeanggotaanFk", insertable = false, updatable = false)
	private Integer tipeKeanggotaanId;

	@Column(name = "Tanggal", nullable = false, length = 100)
	@Caption(value = "Tanggal")
	private Date tanggal;

	public Date getTanggal() {
		return tanggal;
	}

	public void setTanggal(Date tanggal) {
		this.tanggal = tanggal;
	}

	@Column(name = "Nama", nullable = false, length = 100)
	@Caption(value = "Nama")
	private String nama;

	public String getNama() {
		return nama;
	}

	public void setNama(String nama) {
		this.nama = nama;
	}

	@Column(name = "TanggalLahir", nullable = true, length = 100)
	@Caption(value = "TanggalLahir")
	private Date tanggalLahir;

	public Date getTanggalLahir() {
		return tanggalLahir;
	}

	public void setTanggalLahir(Date tanggalLahir) {
		this.tanggalLahir = tanggalLahir;
	}

	@Column(name = "NomorHP", nullable = false, length = 100)
	@Caption(value = "NomorHP")
	private String nomorHP;

	public String getNomorHP() {
		return nomorHP;
	}

	public void setNomorHP(String nomorHP) {
		this.nomorHP = nomorHP;
	}

	@ManyToOne
	@JoinColumn(name = "JenisKelaminFk")
//	@NotNull(message = "Jenis Kelamin Harus Diisi")
	@Caption(value = "Jenis Kelamin")
	private JenisKelamin jenisKelamin;

	public JenisKelamin getJenisKelamin() {
		return jenisKelamin;
	}

	public void setJenisKelamin(JenisKelamin jenisKelamin) {
		this.jenisKelamin = jenisKelamin;
	}

	@Column(name = "JenisKelaminFk", insertable = false, updatable = false)
	private Integer jenisKelaminId;

	@Column(name = "TempatLahir", nullable = false, length = 100)
	@Caption(value = "TempatLahir")
	private String tempatLahir;

	public String getTempatLahir() {
		return tempatLahir;
	}

	public void setTempatLahir(String tempatLahir) {
		this.tempatLahir = tempatLahir;
	}

	@Column(name = "AsalInstansi", nullable = false, length = 100)
	@Caption(value = "AsalInstansi")
	private String asalInstansi;

	public String getAsalInstansi() {
		return asalInstansi;
	}

	public void setAsalInstansi(String asalInstansi) {
		this.asalInstansi = asalInstansi;
	}

	@Column(name = "Email", nullable = false, length = 100)
	@Caption(value = "Email")
	private String email;

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	@Column(name = "Alamat", nullable = false, length = 100)
	@Caption(value = "Alamat")
	private String alamat;

	public String getAlamat() {
		return alamat;
	}

	public void setAlamat(String alamat) {
		this.alamat = alamat;
	}

}