/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.ctecinf.model;


import br.com.ctecinf.orm.Model;
import br.com.ctecinf.orm.Table;
import br.com.ctecinf.orm.Column;
import br.com.ctecinf.text.MaskFormatter;
import java.sql.Types;

/**
 *
 * @author Cássio Conceição
 * @since 21/08/2019 17:06:02
 * @version 201908
 * @see http://ctecinf.com.br/
 */
@Table("cliente")
public class Cliente extends Model {

    @Column(name = "nome", type = Types.VARCHAR, isNotNull = true, label = "Nome", tableDisplay = true)
    private String nome;

    @Column(name = "sexo", type = Types.VARCHAR, isNotNull = true, label = "Sexo", defaultValues = {"MASCULINO", "FEMININO"})
    private String sexo;

    @Column(name = "estado_civil", type = Types.VARCHAR, label = "Estado Civil", defaultValues = {"SOLTEIRO(A)", "CASADO(A)", "SEPARADO(A)", "DIVORCIADO(A)", "VIUVO(A)"})
    private String estadoCivil;

    @Column(name = "data_cadastro", type = Types.DATE, isNotNull = true, label = "Data Cadastro")
    private java.sql.Date dataCadastro;

    @Column(name = "data_nascimento", type = Types.DATE, label = "Data Nascimento")
    private java.sql.Date dataNascimento;

    @Column(name = "rg", type = Types.VARCHAR, label = "RG")
    private String rg;

    @Column(name = "cpf", type = Types.VARCHAR, label = "CPF", mask = MaskFormatter.CPF, tableDisplay = true)
    private String cpf;

    @Column(name = "naturalidade", type = Types.VARCHAR, label = "Naturalidade")
    private String naturalidade;

    @Column(name = "salario", type = Types.DECIMAL, label = "Salário")
    private java.math.BigDecimal salario;

    @Column(name = "carteira_trabalho", type = Types.VARCHAR, label = "Carteira Trabalho")
    private String carteiraTrabalho;

    @Column(name = "endereco_empresa", type = Types.VARCHAR, label = "Endereço")
    private String enderecoEmpresa;

    @Column(name = "empresa", type = Types.VARCHAR, label = "Nome")
    private String empresa;

    @Column(name = "nome_pai", type = Types.VARCHAR, label = "Nome Pai")
    private String nomePai;

    @Column(name = "nome_mae", type = Types.VARCHAR, label = "Nome Mãe")
    private String nomeMae;

    @Column(name = "endereco", type = Types.VARCHAR, label = "Endereço")
    private String endereco;

    @Column(name = "bairro", type = Types.VARCHAR, label = "Bairro")
    private String bairro;

    @Column(name = "cep", type = Types.VARCHAR, label = "CEP")
    private String cep;

    @Column(name = "municipio", type = Types.VARCHAR, label = "Município")
    private String municipio;

    @Column(name = "fone", type = Types.VARCHAR, label = "Fone", tableDisplay = true)
    private String fone;

    @Column(name = "celular", type = Types.VARCHAR, label = "Celular", tableDisplay = true)
    private String celular;

    @Column(name = "email", type = Types.VARCHAR, label = "Email")
    private String email;

    @Column(name = "conjuge", type = Types.VARCHAR, label = "Conjuge")
    private String conjuge;

    @Column(name = "data_nascimento_conjuge", type = Types.DATE, label = "Data Nascimento")
    private java.sql.Date dataNascimentoConjuge;

    @Column(name = "rg_conjuge", type = Types.VARCHAR, label = "RG")
    private String rgConjuge;

    @Column(name = "fone_conjuge", type = Types.VARCHAR, label = "Fone")
    private String foneConjuge;

    @Column(name = "celular_conjuge", type = Types.VARCHAR, label = "Celular")
    private String celularConjuge;

    @Column(name = "conhecido", type = Types.VARCHAR, label = "Conhecido")
    private String conhecido;

    @Column(name = "fone_conhecido", type = Types.VARCHAR, label = "Fone")
    private String foneConhecido;

    @Column(name = "spc", type = Types.DATE, label = "SPC", tableDisplay = true)
    private java.sql.Date spc;

    @Column(name = "observacao", type = Types.BLOB, label = "Observação")
    private String observacao;

    public String getNome() {
        return this.nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getSexo() {
        return this.sexo;
    }

    public void setSexo(String sexo) {
        this.sexo = sexo;
    }

    public String getEstadoCivil() {
        return this.estadoCivil;
    }

    public void setEstadoCivil(String estadoCivil) {
        this.estadoCivil = estadoCivil;
    }

    public java.sql.Date getDataCadastro() {
        return this.dataCadastro;
    }

    public void setDataCadastro(java.sql.Date dataCadastro) {
        this.dataCadastro = dataCadastro;
    }

    public java.sql.Date getDataNascimento() {
        return this.dataNascimento;
    }

    public void setDataNascimento(java.sql.Date dataNascimento) {
        this.dataNascimento = dataNascimento;
    }

    public String getRg() {
        return this.rg;
    }

    public void setRg(String rg) {
        this.rg = rg;
    }

    public String getCpf() {
        return this.cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public String getNaturalidade() {
        return this.naturalidade;
    }

    public void setNaturalidade(String naturalidade) {
        this.naturalidade = naturalidade;
    }

    public java.math.BigDecimal getSalario() {
        return this.salario;
    }

    public void setSalario(java.math.BigDecimal salario) {
        this.salario = salario;
    }

    public String getCarteiraTrabalho() {
        return this.carteiraTrabalho;
    }

    public void setCarteiraTrabalho(String carteiraTrabalho) {
        this.carteiraTrabalho = carteiraTrabalho;
    }

    public String getEnderecoEmpresa() {
        return this.enderecoEmpresa;
    }

    public void setEnderecoEmpresa(String enderecoEmpresa) {
        this.enderecoEmpresa = enderecoEmpresa;
    }

    public String getEmpresa() {
        return this.empresa;
    }

    public void setEmpresa(String empresa) {
        this.empresa = empresa;
    }

    public String getNomePai() {
        return this.nomePai;
    }

    public void setNomePai(String nomePai) {
        this.nomePai = nomePai;
    }

    public String getNomeMae() {
        return this.nomeMae;
    }

    public void setNomeMae(String nomeMae) {
        this.nomeMae = nomeMae;
    }

    public String getEndereco() {
        return this.endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public String getBairro() {
        return this.bairro;
    }

    public void setBairro(String bairro) {
        this.bairro = bairro;
    }

    public String getCep() {
        return this.cep;
    }

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

    public String getMunicipio() {
        return this.municipio;
    }

    public void setMunicipio(String municipio) {
        this.municipio = municipio;
    }

    public String getFone() {
        return this.fone;
    }

    public void setFone(String fone) {
        this.fone = fone;
    }

    public String getCelular() {
        return this.celular;
    }

    public void setCelular(String celular) {
        this.celular = celular;
    }

    public String getEmail() {
        return this.email;
    }

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

    public String getConjuge() {
        return this.conjuge;
    }

    public void setConjuge(String conjuge) {
        this.conjuge = conjuge;
    }

    public java.sql.Date getDataNascimentoConjuge() {
        return this.dataNascimentoConjuge;
    }

    public void setDataNascimentoConjuge(java.sql.Date dataNascimentoConjuge) {
        this.dataNascimentoConjuge = dataNascimentoConjuge;
    }

    public String getRgConjuge() {
        return this.rgConjuge;
    }

    public void setRgConjuge(String rgConjuge) {
        this.rgConjuge = rgConjuge;
    }

    public String getFoneConjuge() {
        return this.foneConjuge;
    }

    public void setFoneConjuge(String foneConjuge) {
        this.foneConjuge = foneConjuge;
    }

    public String getCelularConjuge() {
        return this.celularConjuge;
    }

    public void setCelularConjuge(String celularConjuge) {
        this.celularConjuge = celularConjuge;
    }

    public String getConhecido() {
        return this.conhecido;
    }

    public void setConhecido(String conhecido) {
        this.conhecido = conhecido;
    }

    public String getFoneConhecido() {
        return this.foneConhecido;
    }

    public void setFoneConhecido(String foneConhecido) {
        this.foneConhecido = foneConhecido;
    }

    public java.sql.Date getSpc() {
        return this.spc;
    }

    public void setSpc(java.sql.Date spc) {
        this.spc = spc;
    }

    public String getObservacao() {
        return this.observacao;
    }

    public void setObservacao(String observacao) {
        this.observacao = observacao;
    }

    @Override
    public String toString() {
        return nome == null ? "Cliente {" + (getId() == null ? "Não cadastrado" : "ID = " + getId()) + "}" : nome;
    }
}
