package com.cosmodas.EntCosmos;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable;

@Entity
@Table(name = "articulo_papeleria")
@XmlRootElement
@NamedQueries({
        @NamedQuery(name = "ArticuloPapeleria.findAll", query = "SELECT f FROM ArticuloPapeleria f"),
        @NamedQuery(name = "ArticuloPapeleria.findByCodigoPapeleria", query = "SELECT f FROM ArticuloPapeleria f WHERE f.codigoPapeleria = :codigoPapeleria"),
        @NamedQuery(name = "ArticuloPapeleria.findByDescripcionPapeleria", query = "SELECT f FROM ArticuloPapeleria f WHERE f.descripcionPapeleria = :descripcionPapeleria"),
        @NamedQuery(name = "ArticuloPapeleria.findByMarca", query = "SELECT f FROM ArticuloPapeleria f WHERE f.marca = :marca")})

public class ArticuloPapeleria implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Basic(optional = false)
    @NotNull

    @Column(name = "codigo_papeleria")
    private String codigoPapeleria;

    @Size(max = 60)
    @Column(name = "descripcion_papeleria")
    private String descripcionPapeleria;

    @Basic(optional = false)
    @NotNull
    @Column(name = "marca")
    private String marca;

    @JoinColumn(name = "clasificacion", referencedColumnName = "codigo_clasificacion")
    @ManyToOne(optional = false)
    private Clasificacion codigoClasificacion;

    public ArticuloPapeleria() {
    }
    public ArticuloPapeleria(String codigoPapeleria, String descripcionPapeleria, String marca) {
        this.codigoPapeleria = codigoPapeleria;
        this.descripcionPapeleria = descripcionPapeleria;
        this.marca = marca;
    }

    public String getCodigoPapeleria() {
        return codigoPapeleria;
    }

    public void setCodigoPapeleria(String codigoPapeleria) {
        this.codigoPapeleria = codigoPapeleria;
    }

    public String getDescripcionPapeleria() {
        return descripcionPapeleria;
    }

    public void setDescripcionPapeleria(String descripcionPapeleria) {
        this.descripcionPapeleria = descripcionPapeleria;
    }

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public Clasificacion getCodigoClasificacion() {
        return codigoClasificacion;
    }

    public void setCodigoClasificacion(Clasificacion codigoClasificacion) {
        this.codigoClasificacion = codigoClasificacion;
    }

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

    @Override
    public String toString() {
        return "dbCon.ArticuloPapeleria[ codigoPapeleria=" + codigoPapeleria + " ]";
    }

}
