/*
 * 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 javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * @author obper
 */
@Entity
@Table(name = "entrega_premios")
@XmlRootElement
@NamedQueries({
        @NamedQuery(name = "EntregaPremios.findAll", query = "SELECT e FROM EntregaPremios e"),
        @NamedQuery(name = "EntregaPremios.findByCodigoConsultor", query = "SELECT e FROM EntregaPremios e WHERE e.entregaPremiosPK.codigoConsultor = :codigoConsultor"),
        @NamedQuery(name = "EntregaPremios.findByCodigoConsultorYPrograma", query = "SELECT e FROM EntregaPremios e WHERE e.entregaPremiosPK.codigoConsultor = :codigoConsultor AND e.entregaPremiosPK.programa = :progama"),
        @NamedQuery(name = "EntregaPremios.findByPrograma", query = "SELECT e FROM EntregaPremios e WHERE e.entregaPremiosPK.programa = :programa"),
        @NamedQuery(name = "EntregaPremios.findByPremio", query = "SELECT e FROM EntregaPremios e WHERE e.premio = :premio"),
        @NamedQuery(name = "EntregaPremios.findByEntregado", query = "SELECT e FROM EntregaPremios e WHERE e.entregado = :entregado"),
        @NamedQuery(name = "EntregaPremios.findByAutorizado", query = "SELECT e FROM EntregaPremios e WHERE e.entregaPremiosPK.autorizado = :autorizado")})
public class EntregaPremios implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected EntregaPremiosPK entregaPremiosPK;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 20)
    @Column(name = "premio")
    private String premio;
    @Basic(optional = false)
    @NotNull
    @Column(name = "entregado")
    private boolean entregado;
    @JoinColumn(name = "codigo_consultor", referencedColumnName = "consultor_codigo", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Consultores consultores;

    public EntregaPremios() {
    }

    public EntregaPremios(EntregaPremiosPK entregaPremiosPK) {
        this.entregaPremiosPK = entregaPremiosPK;
    }

    public EntregaPremios(EntregaPremiosPK entregaPremiosPK, String premio, boolean entregado) {
        this.entregaPremiosPK = entregaPremiosPK;
        this.premio = premio;
        this.entregado = entregado;
    }

    public EntregaPremios(String codigoConsultor, String programa, String autorizado) {
        this.entregaPremiosPK = new EntregaPremiosPK(codigoConsultor, programa, autorizado);
    }

    public EntregaPremiosPK getEntregaPremiosPK() {
        return entregaPremiosPK;
    }

    public void setEntregaPremiosPK(EntregaPremiosPK entregaPremiosPK) {
        this.entregaPremiosPK = entregaPremiosPK;
    }

    public String getPremio() {
        return premio;
    }

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

    public boolean getEntregado() {
        return entregado;
    }

    public void setEntregado(boolean entregado) {
        this.entregado = entregado;
    }

    public Consultores getConsultores() {
        return consultores;
    }

    public void setConsultores(Consultores consultores) {
        this.consultores = consultores;
    }

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

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

}
