/*
 * 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 conexionCredibanco.entity;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author viatori
 */
@Entity
@Table(name = "tbl_empresas")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "TblEmpresasCredibanco.findAll", query = "SELECT t FROM TblEmpresasCredibanco t")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByIdEmpresa", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.idEmpresa = :idEmpresa")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByCodEmpresa", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.codEmpresa = :codEmpresa")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByRazonSocial", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.razonSocial = :razonSocial")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByEstado", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.estado = :estado")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByNit", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.nit = :nit")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByCodigoUnico", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.codigoUnico = :codigoUnico")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByTerminal", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.terminal = :terminal")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByClaveCredibanco", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.claveCredibanco = :claveCredibanco")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByClaveCertificado", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.claveCertificado = :claveCertificado")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByUsuarioCredibanco", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.usuarioCredibanco = :usuarioCredibanco")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByUrlNotificacion", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.urlNotificacion = :urlNotificacion")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByIva", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.iva = :iva")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByBaseDevolucion", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.baseDevolucion = :baseDevolucion")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByUrlRetorno", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.urlRetorno = :urlRetorno")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByTienecvv2", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.tienecvv2 = :tienecvv2")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByLogo", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.logo = :logo")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByLogos", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.logos = :logos")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByCreated", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.created = :created")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByUpdated", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.updated = :updated")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByToken", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.token = :token")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByTrajetaInternacion", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.trajetaInternacion = :trajetaInternacion")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByMontoMin", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.montoMin = :montoMin")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByMontoMax", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.montoMax = :montoMax")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByPagoDia", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.pagoDia = :pagoDia")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByPagoMes", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.pagoMes = :pagoMes")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByNumPagoDia", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.numPagoDia = :numPagoDia")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByNumPagoMes", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.numPagoMes = :numPagoMes")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByPagoAnyo", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.pagoAnyo = :pagoAnyo")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByNumPagoAnyo", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.numPagoAnyo = :numPagoAnyo")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByMontoCliemteDia", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.montoCliemteDia = :montoCliemteDia")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByMontoClienteMes", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.montoClienteMes = :montoClienteMes")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByPaises", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.paises = :paises")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByHorarios", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.horarios = :horarios")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByUsuarioIp", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.usuarioIp = :usuarioIp")
    , @NamedQuery(name = "TblEmpresasCredibanco.findByTiempoBloqueIp", query = "SELECT t FROM TblEmpresasCredibanco t WHERE t.tiempoBloqueIp = :tiempoBloqueIp")})
public class TblEmpresasCredibanco implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id_empresa")
    private Long idEmpresa;
    @Basic(optional = false)
    @Column(name = "cod_empresa")
    private String codEmpresa;
    @Column(name = "razon_social")
    private String razonSocial;
    @Basic(optional = false)
    @Column(name = "estado")
    private boolean estado;
    @Column(name = "nit")
    private String nit;
    @Column(name = "codigo_unico")
    private String codigoUnico;
    @Column(name = "terminal")
    private String terminal;
    @Column(name = "clave_credibanco")
    private String claveCredibanco;
    @Column(name = "clave_certificado")
    private String claveCertificado;
    @Column(name = "usuario_credibanco")
    private String usuarioCredibanco;
    @Column(name = "url_notificacion")
    private String urlNotificacion;
    @Column(name = "iva")
    private Integer iva;
    @Column(name = "base_devolucion")
    private Integer baseDevolucion;
    @Column(name = "url_retorno")
    private String urlRetorno;
    @Column(name = "tienecvv2")
    private Integer tienecvv2;
    @Column(name = "logo")
    private String logo;
    @Column(name = "logos")
    private String logos;
    @Basic(optional = false)
    @Column(name = "created")
    @Temporal(TemporalType.TIMESTAMP)
    private Date created;
    @Column(name = "updated")
    @Temporal(TemporalType.TIMESTAMP)
    private Date updated;
    @Column(name = "token")
    private String token;
    @Column(name = "trajeta_internacion")
    private Boolean trajetaInternacion;
    @Column(name = "monto_min")
    private BigInteger montoMin;
    @Column(name = "monto_max")
    private BigInteger montoMax;
    @Column(name = "pago_dia")
    private Boolean pagoDia;
    @Column(name = "pago_mes")
    private Boolean pagoMes;
    @Column(name = "num_pago_dia")
    private Integer numPagoDia;
    @Column(name = "num_pago_mes")
    private Integer numPagoMes;
    @Column(name = "pago_anyo")
    private Boolean pagoAnyo;
    @Column(name = "num_pago_anyo")
    private Integer numPagoAnyo;
    @Column(name = "monto_cliemte_dia")
    private BigInteger montoCliemteDia;
    @Column(name = "monto_cliente_mes")
    private BigInteger montoClienteMes;
    @Column(name = "paises")
    private Boolean paises;
    @Column(name = "horarios")
    private Boolean horarios;
    @Column(name = "usuario_ip")
    private Boolean usuarioIp;
    @Column(name = "tiempo_bloque_ip")
    private Integer tiempoBloqueIp;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idEmpresa")
    private Collection<RefPaises> refPaisesCollection;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idEmpresa")
    private Collection<RefHorarios> refHorariosCollection;

    public TblEmpresasCredibanco() {
    }

    public TblEmpresasCredibanco(Long idEmpresa) {
        this.idEmpresa = idEmpresa;
    }

    public TblEmpresasCredibanco(Long idEmpresa, String codEmpresa, boolean estado, Date created) {
        this.idEmpresa = idEmpresa;
        this.codEmpresa = codEmpresa;
        this.estado = estado;
        this.created = created;
    }

    public Long getIdEmpresa() {
        return idEmpresa;
    }

    public void setIdEmpresa(Long idEmpresa) {
        this.idEmpresa = idEmpresa;
    }

    public String getCodEmpresa() {
        return codEmpresa;
    }

    public void setCodEmpresa(String codEmpresa) {
        this.codEmpresa = codEmpresa;
    }

    public String getRazonSocial() {
        return razonSocial;
    }

    public void setRazonSocial(String razonSocial) {
        this.razonSocial = razonSocial;
    }

    public boolean getEstado() {
        return estado;
    }

    public void setEstado(boolean estado) {
        this.estado = estado;
    }

    public String getNit() {
        return nit;
    }

    public void setNit(String nit) {
        this.nit = nit;
    }

    public String getCodigoUnico() {
        return codigoUnico;
    }

    public void setCodigoUnico(String codigoUnico) {
        this.codigoUnico = codigoUnico;
    }

    public String getTerminal() {
        return terminal;
    }

    public void setTerminal(String terminal) {
        this.terminal = terminal;
    }

    public String getClaveCredibanco() {
        return claveCredibanco;
    }

    public void setClaveCredibanco(String claveCredibanco) {
        this.claveCredibanco = claveCredibanco;
    }

    public String getClaveCertificado() {
        return claveCertificado;
    }

    public void setClaveCertificado(String claveCertificado) {
        this.claveCertificado = claveCertificado;
    }

    public String getUsuarioCredibanco() {
        return usuarioCredibanco;
    }

    public void setUsuarioCredibanco(String usuarioCredibanco) {
        this.usuarioCredibanco = usuarioCredibanco;
    }

    public String getUrlNotificacion() {
        return urlNotificacion;
    }

    public void setUrlNotificacion(String urlNotificacion) {
        this.urlNotificacion = urlNotificacion;
    }

    public Integer getIva() {
        return iva;
    }

    public void setIva(Integer iva) {
        this.iva = iva;
    }

    public Integer getBaseDevolucion() {
        return baseDevolucion;
    }

    public void setBaseDevolucion(Integer baseDevolucion) {
        this.baseDevolucion = baseDevolucion;
    }

    public String getUrlRetorno() {
        return urlRetorno;
    }

    public void setUrlRetorno(String urlRetorno) {
        this.urlRetorno = urlRetorno;
    }

    public Integer getTienecvv2() {
        return tienecvv2;
    }

    public void setTienecvv2(Integer tienecvv2) {
        this.tienecvv2 = tienecvv2;
    }

    public String getLogo() {
        return logo;
    }

    public void setLogo(String logo) {
        this.logo = logo;
    }

    public String getLogos() {
        return logos;
    }

    public void setLogos(String logos) {
        this.logos = logos;
    }

    public Date getCreated() {
        return created;
    }

    public void setCreated(Date created) {
        this.created = created;
    }

    public Date getUpdated() {
        return updated;
    }

    public void setUpdated(Date updated) {
        this.updated = updated;
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public Boolean getTrajetaInternacion() {
        return trajetaInternacion;
    }

    public void setTrajetaInternacion(Boolean trajetaInternacion) {
        this.trajetaInternacion = trajetaInternacion;
    }

    public BigInteger getMontoMin() {
        return montoMin;
    }

    public void setMontoMin(BigInteger montoMin) {
        this.montoMin = montoMin;
    }

    public BigInteger getMontoMax() {
        return montoMax;
    }

    public void setMontoMax(BigInteger montoMax) {
        this.montoMax = montoMax;
    }

    public Boolean getPagoDia() {
        return pagoDia;
    }

    public void setPagoDia(Boolean pagoDia) {
        this.pagoDia = pagoDia;
    }

    public Boolean getPagoMes() {
        return pagoMes;
    }

    public void setPagoMes(Boolean pagoMes) {
        this.pagoMes = pagoMes;
    }

    public Integer getNumPagoDia() {
        return numPagoDia;
    }

    public void setNumPagoDia(Integer numPagoDia) {
        this.numPagoDia = numPagoDia;
    }

    public Integer getNumPagoMes() {
        return numPagoMes;
    }

    public void setNumPagoMes(Integer numPagoMes) {
        this.numPagoMes = numPagoMes;
    }

    public Boolean getPagoAnyo() {
        return pagoAnyo;
    }

    public void setPagoAnyo(Boolean pagoAnyo) {
        this.pagoAnyo = pagoAnyo;
    }

    public Integer getNumPagoAnyo() {
        return numPagoAnyo;
    }

    public void setNumPagoAnyo(Integer numPagoAnyo) {
        this.numPagoAnyo = numPagoAnyo;
    }

    public BigInteger getMontoCliemteDia() {
        return montoCliemteDia;
    }

    public void setMontoCliemteDia(BigInteger montoCliemteDia) {
        this.montoCliemteDia = montoCliemteDia;
    }

    public BigInteger getMontoClienteMes() {
        return montoClienteMes;
    }

    public void setMontoClienteMes(BigInteger montoClienteMes) {
        this.montoClienteMes = montoClienteMes;
    }

    public Boolean getPaises() {
        return paises;
    }

    public void setPaises(Boolean paises) {
        this.paises = paises;
    }

    public Boolean getHorarios() {
        return horarios;
    }

    public void setHorarios(Boolean horarios) {
        this.horarios = horarios;
    }

    public Boolean getUsuarioIp() {
        return usuarioIp;
    }

    public void setUsuarioIp(Boolean usuarioIp) {
        this.usuarioIp = usuarioIp;
    }

    public Integer getTiempoBloqueIp() {
        return tiempoBloqueIp;
    }

    public void setTiempoBloqueIp(Integer tiempoBloqueIp) {
        this.tiempoBloqueIp = tiempoBloqueIp;
    }

    @XmlTransient
    public Collection<RefPaises> getRefPaisesCollection() {
        return refPaisesCollection;
    }

    public void setRefPaisesCollection(Collection<RefPaises> refPaisesCollection) {
        this.refPaisesCollection = refPaisesCollection;
    }

    @XmlTransient
    public Collection<RefHorarios> getRefHorariosCollection() {
        return refHorariosCollection;
    }

    public void setRefHorariosCollection(Collection<RefHorarios> refHorariosCollection) {
        this.refHorariosCollection = refHorariosCollection;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idEmpresa != null ? idEmpresa.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof TblEmpresasCredibanco)) {
            return false;
        }
        TblEmpresasCredibanco other = (TblEmpresasCredibanco) object;
        if ((this.idEmpresa == null && other.idEmpresa != null) || (this.idEmpresa != null && !this.idEmpresa.equals(other.idEmpresa))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "conexionCredibanco.entity.TblEmpresas[ idEmpresa=" + idEmpresa + " ]";
    }
    
}
