// Path: src/main/java/com/github/marcelothebuilder/webpedidos/model/cliente/Cliente.java
// @Entity
// @Table(name = "cliente", uniqueConstraints = {
// 		@UniqueConstraint(name = "uk_doc_receita_federal", columnNames = { "doc_receita_federal" }),
// 		@UniqueConstraint(name = "uk_email", columnNames = { "email" }) })
// public class Cliente implements Serializable {
// 	private static final long serialVersionUID = 1L;
// 	private Long codigo;
// 	private List<Endereco> endereco = new ArrayList<>();
// 	private String nome;
// 	private String email;
// 	private String documentoReceitaFederal;
// 	private TipoPessoa tipoPessoa;
// 
// 	@Id
// 	@GeneratedValue(strategy = GenerationType.IDENTITY)
// 	public Long getCodigo() {
// 		return codigo;
// 	}
// 
// 	public void setCodigo(Long codigo) {
// 		this.codigo = codigo;
// 	}
// 
// 	@OneToMany(mappedBy = "cliente", cascade = CascadeType.ALL, orphanRemoval = true)
// 	public List<Endereco> getEndereco() {
// 		return endereco;
// 	}
// 
// 	public void setEndereco(List<Endereco> endereco) {
// 		this.endereco = endereco;
// 	}
// 
// 	@NotBlank
// 	@Column(nullable = false, length = 255)
// 	public String getNome() {
// 		return nome;
// 	}
// 
// 	public void setNome(String nome) {
// 		this.nome = nome;
// 	}
// 
// 	@NotBlank
// 	@Column(nullable = false, length = 255)
// 	public String getEmail() {
// 		return email;
// 	}
// 
// 	public void setEmail(String email) {
// 		this.email = email;
// 	}
// 	
// 	@NotBlank
// 	@Column(nullable = false, length = 14, name = "doc_receita_federal")
// 	public String getDocumentoReceitaFederal() {
// 		return documentoReceitaFederal;
// 	}
// 
// 	public void setDocumentoReceitaFederal(String documentoReceitaFederal) {
// 		this.documentoReceitaFederal = documentoReceitaFederal;
// 	}
// 
// 	@NotNull
// 	@Enumerated(EnumType.STRING)
// 	@Column(nullable = false, length = 10, name = "tipo_pessoa")
// 	public TipoPessoa getTipoPessoa() {
// 		return tipoPessoa;
// 	}
// 
// 	public void setTipoPessoa(TipoPessoa tipoPessoa) {
// 		this.tipoPessoa = tipoPessoa;
// 	}
// 
// 	@Override
// 	public int hashCode() {
// 		final int prime = 31;
// 		int result = 1;
// 		result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
// 		return result;
// 	}
// 
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (this == obj)
// 			return true;
// 		if (obj == null)
// 			return false;
// 		if (!(obj instanceof Cliente))
// 			return false;
// 		Cliente other = (Cliente) obj;
// 		if (codigo == null) {
// 			if (other.codigo != null)
// 				return false;
// 		} else if (!codigo.equals(other.codigo))
// 			return false;
// 		return true;
// 	}
// 
// }


import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ForeignKey;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotBlank;
import com.github.marcelothebuilder.webpedidos.model.cliente.Cliente;
import com.github.marcelothebuilder.webpedidos.validation.Cep;
	}
	
	@NotBlank
	@Cep
	@Column(nullable = false, length = 9)
	public String getCep() {
		return cep;
	}

	public void setCep(String cep) {
		this.cep = cep;
	}

	@NotNull
	@Min(0)
	@Column(nullable = false, length = 20)
	public Integer getNumero() {
		return numero;
	}

	public void setNumero(Integer numero) {
		this.numero = numero;
	}

	@ManyToOne(optional = false)
	@JoinColumn(foreignKey = @ForeignKey(name = "fk_endereco_to_cliente"))
	public Cliente getCliente() {
		return cliente;
	}

// Path: src/main/java/com/github/marcelothebuilder/webpedidos/model/cliente/Cliente.java
// @Entity
// @Table(name = "cliente", uniqueConstraints = {
// 		@UniqueConstraint(name = "uk_doc_receita_federal", columnNames = { "doc_receita_federal" }),
// 		@UniqueConstraint(name = "uk_email", columnNames = { "email" }) })
// public class Cliente implements Serializable {
// 	private static final long serialVersionUID = 1L;
// 	private Long codigo;
// 	private List<Endereco> endereco = new ArrayList<>();
// 	private String nome;
// 	private String email;
// 	private String documentoReceitaFederal;
// 	private TipoPessoa tipoPessoa;
// 
// 	@Id
// 	@GeneratedValue(strategy = GenerationType.IDENTITY)
// 	public Long getCodigo() {
// 		return codigo;
// 	}
// 
// 	public void setCodigo(Long codigo) {
// 		this.codigo = codigo;
// 	}
// 
// 	@OneToMany(mappedBy = "cliente", cascade = CascadeType.ALL, orphanRemoval = true)
// 	public List<Endereco> getEndereco() {
// 		return endereco;
// 	}
// 
// 	public void setEndereco(List<Endereco> endereco) {
// 		this.endereco = endereco;
// 	}
// 
// 	@NotBlank
// 	@Column(nullable = false, length = 255)
// 	public String getNome() {
// 		return nome;
// 	}
// 
// 	public void setNome(String nome) {
// 		this.nome = nome;
// 	}
// 
// 	@NotBlank
// 	@Column(nullable = false, length = 255)
// 	public String getEmail() {
// 		return email;
// 	}
// 
// 	public void setEmail(String email) {
// 		this.email = email;
// 	}
// 	
// 	@NotBlank
// 	@Column(nullable = false, length = 14, name = "doc_receita_federal")
// 	public String getDocumentoReceitaFederal() {
// 		return documentoReceitaFederal;
// 	}
// 
// 	public void setDocumentoReceitaFederal(String documentoReceitaFederal) {
// 		this.documentoReceitaFederal = documentoReceitaFederal;
// 	}
// 
// 	@NotNull
// 	@Enumerated(EnumType.STRING)
// 	@Column(nullable = false, length = 10, name = "tipo_pessoa")
// 	public TipoPessoa getTipoPessoa() {
// 		return tipoPessoa;
// 	}
// 
// 	public void setTipoPessoa(TipoPessoa tipoPessoa) {
// 		this.tipoPessoa = tipoPessoa;
// 	}
// 
// 	@Override
// 	public int hashCode() {
// 		final int prime = 31;
// 		int result = 1;
// 		result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
// 		return result;
// 	}
// 
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (this == obj)
// 			return true;
// 		if (obj == null)
// 			return false;
// 		if (!(obj instanceof Cliente))
// 			return false;
// 		Cliente other = (Cliente) obj;
// 		if (codigo == null) {
// 			if (other.codigo != null)
// 				return false;
// 		} else if (!codigo.equals(other.codigo))
// 			return false;
// 		return true;
// 	}
// 
// }


// Path: src/main/java/com/github/marcelothebuilder/webpedidos/model/endereco/Endereco.java
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ForeignKey;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotBlank;
import com.github.marcelothebuilder.webpedidos.model.cliente.Cliente;
import com.github.marcelothebuilder.webpedidos.validation.Cep;

	}
	
	@NotBlank
	@Cep
	@Column(nullable = false, length = 9)
	public String getCep() {
		return cep;
	}

	public void setCep(String cep) {
		this.cep = cep;
	}

	@NotNull
	@Min(0)
	@Column(nullable = false, length = 20)
	public Integer getNumero() {
		return numero;
	}

	public void setNumero(Integer numero) {
		this.numero = numero;
	}

	@ManyToOne(optional = false)
	@JoinColumn(foreignKey = @ForeignKey(name = "fk_endereco_to_cliente"))
	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {