package com.rjconsultores.ventaboletos.entidad;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.rjconsultores.ventaboletos.anotacao.Renderizado;

@Entity
@Table(name = "CLIENTE_CORPORATIVO")
@SequenceGenerator(name = "CLIENTE_CORPORATIVO_SEQ", sequenceName = "CLIENTE_CORPORATIVO_SEQ", allocationSize = 1)
public class ClienteCorporativo implements Serializable  {

	private static final long serialVersionUID = -5338880268814582448L;

	@Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CLIENTE_CORPORATIVO_SEQ")
	@Renderizado
    @Column(name = "CLIENTECORPORATIVO_ID")
    private Long clienteCorporativoId;

    @Column(name = "EMPRESA_ID", nullable = false)
    private Integer empresaId;

    @Renderizado
    @Column(name = "IDENTIFICACAO")
    private Long identificacao;

    @Renderizado
    @Column(name = "NOMCLIENTECORP", length = 255)
    private String nomeClienteCorp;
    
    @Column(name = "DATA_CRIACAO")
    private Date dataCriacao;

    @Column(name = "LOGRADOURO", length = 255)
    private String logradouro;

    @Column(name = "NUMERO", length = 6)
    private String numero;

    @Column(name = "BAIRRO", length = 255)
    private String bairro;

    @Column(name = "COMPLEMENTO", length = 100)
    private String complemento;

    @Column(name = "CEP", length = 20)
    private String cep;

    @Column(name = "TELEFONE", length = 20)
    private String telefone;

    @Column(name = "EMAIL", length = 150)
    private String email;

    @Column(name = "CIUDAD_ID")
    private Integer ciudadId;

    @Column(name = "USUARIO_ID")
    private Integer usuarioId;

    @Column(name = "ACTIVO")
    private boolean activo;

    @Column(name = "FECMODIF")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fecModif;
    
    @Renderizado
    private transient String nombEmpresa;

    public Long getClienteCorporativoId() {
        return clienteCorporativoId;
    }

    public void setClienteCorporativoId(Long clienteCorporativoId) {
        this.clienteCorporativoId = clienteCorporativoId;
    }

    public Integer getEmpresaId() {
        return empresaId;
    }

    public void setEmpresaId(Integer empresaId) {
        this.empresaId = empresaId;
    }

    public Long getIdentificacao() {
        return identificacao;
    }

    public void setIdentificacao(Long identificacao) {
        this.identificacao = identificacao;
    }

    public String getNomeClienteCorp() {
        return nomeClienteCorp;
    }

    public void setNomeClienteCorp(String nomeClienteCorp) {
        this.nomeClienteCorp = nomeClienteCorp;
    }

    public String getLogradouro() {
        return logradouro;
    }

    public void setLogradouro(String logradouro) {
        this.logradouro = logradouro;
    }

    public String getNumero() {
        return numero;
    }

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

    public String getBairro() {
        return bairro;
    }

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

    public String getComplemento() {
        return complemento;
    }

    public void setComplemento(String complemento) {
        this.complemento = complemento;
    }

    public String getCep() {
        return cep;
    }

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

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    public String getEmail() {
        return email;
    }

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

    public Integer getCiudadId() {
        return ciudadId;
    }

    public void setCiudadId(Integer ciudadId) {
        this.ciudadId = ciudadId;
    }

    public Integer getUsuarioId() {
        return usuarioId;
    }

    public void setUsuarioId(Integer usuarioId) {
        this.usuarioId = usuarioId;
    }

    public boolean getActivo() {
        return activo;
    }

    public void setActivo(boolean activo) {
        this.activo = activo;
    }

    public Date getFecModif() {
        return fecModif;
    }

    public void setFecModif(Date fecModif) {
        this.fecModif = fecModif;
    }

	public Date getDataCriacao() {
		return dataCriacao;
	}

	public void setDataCriacao(Date dataCriacao) {
		this.dataCriacao = dataCriacao;
	}

	public String getNombEmpresa() {
		return nombEmpresa !=null ?nombEmpresa :"";
	}

	public void setNombEmpresa(String nombEmpresa) {
		this.nombEmpresa = nombEmpresa;
	}
	
	@Override
	public String toString() {
		return this.nomeClienteCorp;
	}
}