/*
 * 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 javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
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 = "premios")
@XmlRootElement
@NamedQueries({
        @NamedQuery(name = "Premios.findAll", query = "SELECT p FROM Premios p"),
        @NamedQuery(name = "Premios.findByPremioCodigo", query = "SELECT p FROM Premios p WHERE p.premiosPK.premioCodigo = :premioCodigo"),
        @NamedQuery(name = "Premios.findByProgramaCodigo", query = "SELECT p FROM Premios p WHERE p.premiosPK.programaCodigo = :programaCodigo"),
        @NamedQuery(name = "Premios.findByPremioNombre", query = "SELECT p FROM Premios p WHERE p.premioNombre = :premioNombre"),
        @NamedQuery(name = "Premios.findByPremioNombreYprograma", query = "SELECT p FROM Premios p WHERE p.premioNombre = :premioNombre AND p.premiosPK.programaCodigo = :programaCodigo"),
        @NamedQuery(name = "Premios.findByPremioRangoInicio", query = "SELECT p FROM Premios p WHERE p.premioRangoInicio = :premioRangoInicio"),
        @NamedQuery(name = "Premios.findByPremioRangoFinal", query = "SELECT p FROM Premios p WHERE p.premioRangoFinal = :premioRangoFinal"),
        @NamedQuery(name = "Premios.findByPremioEnvio", query = "SELECT p FROM Premios p WHERE p.premioEnvio = :premioEnvio")})
public class Premios implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected PremiosPK premiosPK;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 35)
    @Column(name = "premio_nombre")
    private String premioNombre;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Basic(optional = false)
    @NotNull
    @Column(name = "premio_rango_inicio")
    private BigDecimal premioRangoInicio;
    @Basic(optional = false)
    @NotNull
    @Column(name = "premio_rango_final")
    private BigDecimal premioRangoFinal;
    @Basic(optional = false)
    @NotNull
    @Column(name = "premio_envio")
    private boolean premioEnvio;

    public Premios() {
    }

    public Premios(PremiosPK premiosPK) {
        this.premiosPK = premiosPK;
    }

    public Premios(PremiosPK premiosPK, String premioNombre, BigDecimal premioRangoInicio, BigDecimal premioRangoFinal, boolean premioEnvio) {
        this.premiosPK = premiosPK;
        this.premioNombre = premioNombre;
        this.premioRangoInicio = premioRangoInicio;
        this.premioRangoFinal = premioRangoFinal;
        this.premioEnvio = premioEnvio;
    }

    public Premios(String premioCodigo, String programaCodigo) {
        this.premiosPK = new PremiosPK(premioCodigo, programaCodigo);
    }

    public PremiosPK getPremiosPK() {
        return premiosPK;
    }

    public void setPremiosPK(PremiosPK premiosPK) {
        this.premiosPK = premiosPK;
    }

    public String getPremioNombre() {
        return premioNombre;
    }

    public void setPremioNombre(String premioNombre) {
        this.premioNombre = premioNombre;
    }

    public BigDecimal getPremioRangoInicio() {
        return premioRangoInicio;
    }

    public void setPremioRangoInicio(BigDecimal premioRangoInicio) {
        this.premioRangoInicio = premioRangoInicio;
    }

    public BigDecimal getPremioRangoFinal() {
        return premioRangoFinal;
    }

    public void setPremioRangoFinal(BigDecimal premioRangoFinal) {
        this.premioRangoFinal = premioRangoFinal;
    }

    public boolean getPremioEnvio() {
        return premioEnvio;
    }

    public void setPremioEnvio(boolean premioEnvio) {
        this.premioEnvio = premioEnvio;
    }

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

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

}
