/*
 * 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 com.cosmodas.EntCosmos;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * @author obper
 */
@Entity
@Table(name = "consultores_datos")
@XmlRootElement
@NamedQueries({
        @NamedQuery(name = "ConsultoresDatos.findAll", query = "SELECT c FROM ConsultoresDatos c"),
        @NamedQuery(name = "ConsultoresDatos.findByConsultorCodigo", query = "SELECT c FROM ConsultoresDatos c WHERE c.consultorCodigo = :consultorCodigo"),
        @NamedQuery(name = "ConsultoresDatos.findByConsultorIva", query = "SELECT c FROM ConsultoresDatos c WHERE c.consultorIva = :consultorIva"),
        @NamedQuery(name = "ConsultoresDatos.findByConsultorObservaciones", query = "SELECT c FROM ConsultoresDatos c WHERE c.consultorObservaciones = :consultorObservaciones"),
        @NamedQuery(name = "ConsultoresDatos.findByConsultorEnvio", query = "SELECT c FROM ConsultoresDatos c WHERE c.consultorEnvio = :consultorEnvio"),
        @NamedQuery(name = "ConsultoresDatos.findByConsultorFechaModificacion", query = "SELECT c FROM ConsultoresDatos c WHERE c.consultorFechaModificacion = :consultorFechaModificacion"),
        @NamedQuery(name = "ConsultoresDatos.findByConsultorTarjeta", query = "SELECT c FROM ConsultoresDatos c WHERE c.consultorTarjeta = :consultorTarjeta"),
        @NamedQuery(name = "ConsultoresDatos.findByConsultorReactivacion", query = "SELECT c FROM ConsultoresDatos c WHERE c.consultorReactivacion = :consultorReactivacion"),
        @NamedQuery(name = "ConsultoresDatos.findByConsultorMasivo", query = "SELECT c FROM ConsultoresDatos c WHERE c.consultorMasivo = :consultorMasivo"),
        @NamedQuery(name = "ConsultoresDatos.findByConsultorReparto", query = "SELECT c FROM ConsultoresDatos c WHERE c.consultorReparto = :consultorReparto"),
        @NamedQuery(name = "ConsultoresDatos.findByCorrelativoReparto", query = "SELECT c FROM ConsultoresDatos c WHERE c.correlativoReparto = :correlativoReparto"),
        @NamedQuery(name = "ConsultoresDatos.findByFechaCargo", query = "SELECT c FROM ConsultoresDatos c WHERE c.fechaCargo = :fechaCargo"),
        @NamedQuery(name = "ConsultoresDatos.findByGiro", query = "SELECT c FROM ConsultoresDatos c WHERE c.giro = :giro"),
        @NamedQuery(name = "ConsultoresDatos.findByRegistro", query = "SELECT c FROM ConsultoresDatos c WHERE c.registro = :registro"),
        @NamedQuery(name = "ConsultoresDatos.findByDiasPago", query = "SELECT c FROM ConsultoresDatos c WHERE c.diasPago = :diasPago"),
        @NamedQuery(name = "ConsultoresDatos.findByPremioEntregado", query = "SELECT c FROM ConsultoresDatos c WHERE c.premioEntregado = :premioEntregado"),
        @NamedQuery(name = "ConsultoresDatos.findByAutorizado", query = "SELECT c FROM ConsultoresDatos c WHERE c.autorizado = :autorizado"),
        @NamedQuery(name = "ConsultoresDatos.findByPremio", query = "SELECT c FROM ConsultoresDatos c WHERE c.premio = :premio"),
        @NamedQuery(name = "ConsultoresDatos.findByTrebol", query = "SELECT c FROM ConsultoresDatos c WHERE c.trebol = :trebol"),
        @NamedQuery(name = "ConsultoresDatos.findByMcard", query = "SELECT c FROM ConsultoresDatos c WHERE c.mcard = :mcard"),
        @NamedQuery(name = "ConsultoresDatos.findByConsultorEtiqueta", query = "SELECT c FROM ConsultoresDatos c WHERE c.consultorEtiqueta = :consultorEtiqueta"),
        @NamedQuery(name = "ConsultoresDatos.findByPrograma", query = "SELECT c FROM ConsultoresDatos c WHERE c.programa = :programa"),
        @NamedQuery(name = "ConsultoresDatos.findByTipoReparto", query = "SELECT c FROM ConsultoresDatos c WHERE c.tipoReparto = :tipoReparto"),
        @NamedQuery(name = "ConsultoresDatos.findByZonaReparto", query = "SELECT c FROM ConsultoresDatos c WHERE c.zonaReparto = :zonaReparto")})
public class ConsultoresDatos implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 6)
    @Column(name = "consultor_codigo")
    private String consultorCodigo;
    @Size(max = 5)
    @Column(name = "consultor_iva")
    private String consultorIva;
    @Size(max = 250)
    @Column(name = "consultor_observaciones")
    private String consultorObservaciones;
    @Column(name = "consultor_envio")
    private Boolean consultorEnvio;
    @Column(name = "consultor_fecha_modificacion")
    @Temporal(TemporalType.DATE)
    private Date consultorFechaModificacion;
    @Column(name = "consultor_tarjeta")
    private Boolean consultorTarjeta;
    @Column(name = "consultor_reactivacion")
    @Temporal(TemporalType.DATE)
    private Date consultorReactivacion;
    @Column(name = "consultor_masivo")
    private Boolean consultorMasivo;
    @Column(name = "consultor_reparto")
    private Boolean consultorReparto;
    @Size(max = 4)
    @Column(name = "correlativo_reparto")
    private String correlativoReparto;
    @Column(name = "fecha_cargo")
    @Temporal(TemporalType.DATE)
    private Date fechaCargo;
    @Size(max = 20)
    @Column(name = "giro")
    private String giro;
    @Size(max = 10)
    @Column(name = "registro")
    private String registro;
    @Column(name = "dias_pago")
    private Integer diasPago;
    @Column(name = "premio_entregado")
    private Boolean premioEntregado;
    @Column(name = "autorizado")
    private Boolean autorizado;
    @Size(max = 3)
    @Column(name = "premio")
    private String premio;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "trebol")
    private BigDecimal trebol;
    @Column(name = "mcard")
    private Boolean mcard;
    @Column(name = "consultor_etiqueta")
    private Boolean consultorEtiqueta;
    @Size(max = 3)
    @Column(name = "programa")
    private String programa;
    @Size(max = 1)
    @Column(name = "tipo_reparto")
    private String tipoReparto;
    @Size(max = 50)
    @Column(name = "zona_reparto")
    private String zonaReparto;

    public ConsultoresDatos() {
    }

    public ConsultoresDatos(String consultorCodigo) {
        this.consultorCodigo = consultorCodigo;
    }

    public String getConsultorCodigo() {
        return consultorCodigo;
    }

    public void setConsultorCodigo(String consultorCodigo) {
        this.consultorCodigo = consultorCodigo;
    }

    public String getConsultorIva() {
        return consultorIva;
    }

    public void setConsultorIva(String consultorIva) {
        this.consultorIva = consultorIva;
    }

    public String getConsultorObservaciones() {
        return consultorObservaciones;
    }

    public void setConsultorObservaciones(String consultorObservaciones) {
        this.consultorObservaciones = consultorObservaciones;
    }

    public Boolean getConsultorEnvio() {
        return consultorEnvio;
    }

    public void setConsultorEnvio(Boolean consultorEnvio) {
        this.consultorEnvio = consultorEnvio;
    }

    public Date getConsultorFechaModificacion() {
        return consultorFechaModificacion;
    }

    public void setConsultorFechaModificacion(Date consultorFechaModificacion) {
        this.consultorFechaModificacion = consultorFechaModificacion;
    }

    public Boolean getConsultorTarjeta() {
        return consultorTarjeta;
    }

    public void setConsultorTarjeta(Boolean consultorTarjeta) {
        this.consultorTarjeta = consultorTarjeta;
    }

    public Date getConsultorReactivacion() {
        return consultorReactivacion;
    }

    public void setConsultorReactivacion(Date consultorReactivacion) {
        this.consultorReactivacion = consultorReactivacion;
    }

    public Boolean getConsultorMasivo() {
        return consultorMasivo;
    }

    public void setConsultorMasivo(Boolean consultorMasivo) {
        this.consultorMasivo = consultorMasivo;
    }

    public Boolean getConsultorReparto() {
        return consultorReparto;
    }

    public void setConsultorReparto(Boolean consultorReparto) {
        this.consultorReparto = consultorReparto;
    }

    public String getCorrelativoReparto() {
        return correlativoReparto;
    }

    public void setCorrelativoReparto(String correlativoReparto) {
        this.correlativoReparto = correlativoReparto;
    }

    public Date getFechaCargo() {
        return fechaCargo;
    }

    public void setFechaCargo(Date fechaCargo) {
        this.fechaCargo = fechaCargo;
    }

    public String getGiro() {
        return giro;
    }

    public void setGiro(String giro) {
        this.giro = giro;
    }

    public String getRegistro() {
        return registro;
    }

    public void setRegistro(String registro) {
        this.registro = registro;
    }

    public Integer getDiasPago() {
        return diasPago;
    }

    public void setDiasPago(Integer diasPago) {
        this.diasPago = diasPago;
    }

    public Boolean getPremioEntregado() {
        return premioEntregado;
    }

    public void setPremioEntregado(Boolean premioEntregado) {
        this.premioEntregado = premioEntregado;
    }

    public Boolean getAutorizado() {
        return autorizado;
    }

    public void setAutorizado(Boolean autorizado) {
        this.autorizado = autorizado;
    }

    public String getPremio() {
        return premio;
    }

    public void setPremio(String premio) {
        this.premio = premio;
    }

    public BigDecimal getTrebol() {
        return trebol;
    }

    public void setTrebol(BigDecimal trebol) {
        this.trebol = trebol;
    }

    public Boolean getMcard() {
        return mcard;
    }

    public void setMcard(Boolean mcard) {
        this.mcard = mcard;
    }

    public Boolean getConsultorEtiqueta() {
        return consultorEtiqueta;
    }

    public void setConsultorEtiqueta(Boolean consultorEtiqueta) {
        this.consultorEtiqueta = consultorEtiqueta;
    }

    public String getPrograma() {
        return programa;
    }

    public void setPrograma(String programa) {
        this.programa = programa;
    }

    public String getTipoReparto() {
        return tipoReparto;
    }

    public void setTipoReparto(String tipoReparto) {
        this.tipoReparto = tipoReparto;
    }

    public String getZonaReparto() {
        return zonaReparto;
    }

    public void setZonaReparto(String zonaReparto) {
        this.zonaReparto = zonaReparto;
    }


//    @Override
//    public int hashCode() {
//        int hash = 0;
//        hash += (consultorCodigo != null ? consultorCodigo.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 ConsultoresDatos)) {
            return false;
        }
        ConsultoresDatos other = (ConsultoresDatos) object;
        if ((this.consultorCodigo == null && other.consultorCodigo != null) || (this.consultorCodigo != null && !this.consultorCodigo.equals(other.consultorCodigo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.cosmodas.dbcon.ConsultoresDatos[ consultorCodigo=" + consultorCodigo + " ]";
    }

}
