package com.jasamedika.medifirst2000.vo;

import java.util.HashSet;
import java.util.Set;

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.Table;
import javax.validation.constraints.NotNull;

import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.jasamedika.medifirst2000.base.vo.BaseMasterVO;
import com.jasamedika.medifirst2000.helper.Caption;

/**
 *  class DesaKelurahan
 * 
 * @author Generator
 */
//@Entity
//@Table(name = "DesaKelurahan_M")
public class DesaKelurahanVO extends BaseMasterVO {
	@Caption(value="Kode Desa Kelurahan")
	private Integer kdDesaKelurahan;

	public void setKdDesaKelurahan(Integer kdDesaKelurahan) {
		this.kdDesaKelurahan = kdDesaKelurahan;
	}

	@Column(name = "KdDesaKelurahan", nullable = false )
	public Integer getKdDesaKelurahan(){
		return this.kdDesaKelurahan;
	}

	@ManyToOne
	@JoinColumn(name = "ObjectKecamatanFk")
	@NotNull(message="Object KecamatanVO Harus Diisi")
	@Caption(value="Object Kecamatan")
	private KecamatanVO kecamatan;

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

	@Column(name = "KdKecamatan", nullable = false )
	public KecamatanVO getKecamatan(){
		return this.kecamatan;
	}

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

	@ManyToOne
	@JoinColumn(name = "ObjectKotaKabupatenFk")
	@NotNull(message="Object Kota Kabupaten Harus Diisi")
	@Caption(value="Object Kota Kabupaten")
	private KotaKabupatenVO kotaKabupaten;

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

	@Column(name = "KdKotaKabupaten", nullable = false )
	public KotaKabupatenVO getKotaKabupaten(){
		return this.kotaKabupaten;
	}

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

	@ManyToOne
	@JoinColumn(name = "ObjectPropinsiFk")
	@NotNull(message="Object PropinsiVO Harus Diisi")
	@Caption(value="Object Propinsi")
	private PropinsiVO propinsi;

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

	@Column(name = "KdPropinsi", nullable = false )
	public PropinsiVO getPropinsi(){
		return this.propinsi;
	}

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

	@Caption(value="Kode Pos")
	private String kodePos;

	
	@Column(name = "KodePos", nullable = true , length = 10)
	public String getKodePos() {
		return kodePos;
	}

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

	@Caption(value="Nama Desa Kelurahan")
	private String namaDesaKelurahan;

	public void setNamaDesaKelurahan(String namaDesaKelurahan) {
		this.namaDesaKelurahan = namaDesaKelurahan;
	}

	@Column(name = "NamaDesaKelurahan", nullable = false , length = 50)
	public String getNamaDesaKelurahan(){
		return this.namaDesaKelurahan;
	}

	@Caption(value="QDesa Kelurahan")
	private Integer qDesaKelurahan;

	public void setqDesaKelurahan(Integer qDesaKelurahan) {
		this.qDesaKelurahan = qDesaKelurahan;
	}

	@Column(name = "QDesaKelurahan", nullable = false )
	public Integer getqDesaKelurahan(){
		return this.qDesaKelurahan;
	}

	
	/*//
	@OneToMany(fetch=FetchType.LAZY, cascade = CascadeType.ALL, mappedBy="kddesakelurahan")
	private Set<Alamat> AlamatSet = new HashSet<Alamat>();

	public Set<Alamat> getAlamatSet() {
		return AlamatSet;
	}

	public void setAlamatSet(Set<Alamat> alamatSet) {
		AlamatSet = alamatSet;
	}*/
	
	
}

