/*
 * 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.Entity;
import javax.persistence.Id;
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;
import javax.xml.bind.annotation.XmlTransient;
//import org.codehaus.jackson.annotate.JsonIgnore;

/**
 * @author obper
 */
@Entity
@Table(name = "sucursales")
@XmlRootElement
@NamedQueries({
        @NamedQuery(name = "Sucursales.findAll", query = "SELECT s FROM Sucursales s"),
        @NamedQuery(name = "Sucursales.findBySucursalCodigo", query = "SELECT s FROM Sucursales s WHERE s.sucursalCodigo = :sucursalCodigo"),
        @NamedQuery(name = "Sucursales.findBySalaNombre", query = "SELECT s FROM Sucursales s WHERE s.salaNombre = :salaNombre"),
        @NamedQuery(name = "Sucursales.findBySalaNombreCorto", query = "SELECT s FROM Sucursales s WHERE s.salaNombreCorto = :salaNombreCorto"),
        @NamedQuery(name = "Sucursales.findBySalaFacturaInicio", query = "SELECT s FROM Sucursales s WHERE s.salaFacturaInicio = :salaFacturaInicio"),
        @NamedQuery(name = "Sucursales.findBySalaFacturaFinal", query = "SELECT s FROM Sucursales s WHERE s.salaFacturaFinal = :salaFacturaFinal"),
        @NamedQuery(name = "Sucursales.findBySalaFacturaSiguiente", query = "SELECT s FROM Sucursales s WHERE s.salaFacturaSiguiente = :salaFacturaSiguiente"),
        @NamedQuery(name = "Sucursales.findBySalaEncargado", query = "SELECT s FROM Sucursales s WHERE s.salaEncargado = :salaEncargado"),
        @NamedQuery(name = "Sucursales.findBySalaDireccion", query = "SELECT s FROM Sucursales s WHERE s.salaDireccion = :salaDireccion"),
        @NamedQuery(name = "Sucursales.findBySalaTelefono1", query = "SELECT s FROM Sucursales s WHERE s.salaTelefono1 = :salaTelefono1"),
        @NamedQuery(name = "Sucursales.findBySalaTelefono2", query = "SELECT s FROM Sucursales s WHERE s.salaTelefono2 = :salaTelefono2"),
        @NamedQuery(name = "Sucursales.findBySalaFax", query = "SELECT s FROM Sucursales s WHERE s.salaFax = :salaFax"),
        @NamedQuery(name = "Sucursales.findBySalaRecibo", query = "SELECT s FROM Sucursales s WHERE s.salaRecibo = :salaRecibo"),
        @NamedQuery(name = "Sucursales.findBySalaExtension", query = "SELECT s FROM Sucursales s WHERE s.salaExtension = :salaExtension"),
        @NamedQuery(name = "Sucursales.findBySalaEmail", query = "SELECT s FROM Sucursales s WHERE s.salaEmail = :salaEmail"),
        @NamedQuery(name = "Sucursales.findBySalaSerie", query = "SELECT s FROM Sucursales s WHERE s.salaSerie = :salaSerie"),
        @NamedQuery(name = "Sucursales.findBySerie", query = "SELECT s FROM Sucursales s WHERE s.serie = :serie"),
        @NamedQuery(name = "Sucursales.findBySucursalDescarga", query = "SELECT s FROM Sucursales s WHERE s.sucursalDescarga = :sucursalDescarga"),
        @NamedQuery(name = "Sucursales.findByTerminal", query = "SELECT s FROM Sucursales s WHERE s.terminal = :terminal")})
public class Sucursales implements Serializable {
    //    @OneToMany(cascade = CascadeType.ALL, mappedBy = "sucursalCodigo", fetch = FetchType.EAGER)
//    private Collection<Abonos> abonosCollection;
//    @OneToMany(cascade = CascadeType.ALL, mappedBy = "sucursalCodigo", fetch = FetchType.EAGER)
//    private Collection<Cargos> cargosCollection;
//    @OneToMany(cascade = CascadeType.ALL, mappedBy = "sucursalCodigo", fetch = FetchType.EAGER)
//    private Collection<Facturas> facturasCollection;
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 2)
    @Column(name = "sucursal_codigo")
    private String sucursalCodigo;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 30)
    @Column(name = "sala_nombre")
    private String salaNombre;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 15)
    @Column(name = "sala_nombre_corto")
    private String salaNombreCorto;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 6)
    @Column(name = "sala_factura_inicio")
    private String salaFacturaInicio;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 6)
    @Column(name = "sala_factura_final")
    private String salaFacturaFinal;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 6)
    @Column(name = "sala_factura_siguiente")
    private String salaFacturaSiguiente;
    @Size(max = 30)
    @Column(name = "sala_encargado")
    private String salaEncargado;
    @Size(max = 100)
    @Column(name = "sala_direccion")
    private String salaDireccion;
    @Size(max = 8)
    @Column(name = "sala_telefono1")
    private String salaTelefono1;
    @Size(max = 8)
    @Column(name = "sala_telefono2")
    private String salaTelefono2;
    @Size(max = 8)
    @Column(name = "sala_fax")
    private String salaFax;
    @Size(max = 6)
    @Column(name = "sala_recibo")
    private String salaRecibo;
    @Size(max = 15)
    @Column(name = "sala_extension")
    private String salaExtension;
    @Size(max = 35)
    @Column(name = "sala_email")
    private String salaEmail;
    @Size(max = 2)
    @Column(name = "sala_serie")
    private String salaSerie;
    @Size(max = 10)
    @Column(name = "serie")
    private String serie;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 2)
    @Column(name = "sucursal_descarga")
    private String sucursalDescarga;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 20)
    @Column(name = "terminal")
    private String terminal;
//    @OneToMany(cascade = CascadeType.ALL, mappedBy = "sucursalCodigo", fetch = FetchType.EAGER)
//    private Collection<Ajuste> ajusteCollection;

    public Sucursales() {
    }

    public Sucursales(String sucursalCodigo) {
        this.sucursalCodigo = sucursalCodigo;
    }

    public Sucursales(String sucursalCodigo, String salaNombre, String salaNombreCorto, String salaFacturaInicio, String salaFacturaFinal, String salaFacturaSiguiente, String sucursalDescarga, String terminal) {
        this.sucursalCodigo = sucursalCodigo;
        this.salaNombre = salaNombre;
        this.salaNombreCorto = salaNombreCorto;
        this.salaFacturaInicio = salaFacturaInicio;
        this.salaFacturaFinal = salaFacturaFinal;
        this.salaFacturaSiguiente = salaFacturaSiguiente;
        this.sucursalDescarga = sucursalDescarga;
        this.terminal = terminal;
    }

    public String getSucursalCodigo() {
        return sucursalCodigo;
    }

    public void setSucursalCodigo(String sucursalCodigo) {
        this.sucursalCodigo = sucursalCodigo;
    }

    public String getSalaNombre() {
        return salaNombre;
    }

    public void setSalaNombre(String salaNombre) {
        this.salaNombre = salaNombre;
    }

    public String getSalaNombreCorto() {
        return salaNombreCorto;
    }

    public void setSalaNombreCorto(String salaNombreCorto) {
        this.salaNombreCorto = salaNombreCorto;
    }

    public String getSalaFacturaInicio() {
        return salaFacturaInicio;
    }

    public void setSalaFacturaInicio(String salaFacturaInicio) {
        this.salaFacturaInicio = salaFacturaInicio;
    }

    public String getSalaFacturaFinal() {
        return salaFacturaFinal;
    }

    public void setSalaFacturaFinal(String salaFacturaFinal) {
        this.salaFacturaFinal = salaFacturaFinal;
    }

    public String getSalaFacturaSiguiente() {
        return salaFacturaSiguiente;
    }

    public void setSalaFacturaSiguiente(String salaFacturaSiguiente) {
        this.salaFacturaSiguiente = salaFacturaSiguiente;
    }

    public String getSalaEncargado() {
        return salaEncargado;
    }

    public void setSalaEncargado(String salaEncargado) {
        this.salaEncargado = salaEncargado;
    }

    public String getSalaDireccion() {
        return salaDireccion;
    }

    public void setSalaDireccion(String salaDireccion) {
        this.salaDireccion = salaDireccion;
    }

    public String getSalaTelefono1() {
        return salaTelefono1;
    }

    public void setSalaTelefono1(String salaTelefono1) {
        this.salaTelefono1 = salaTelefono1;
    }

    public String getSalaTelefono2() {
        return salaTelefono2;
    }

    public void setSalaTelefono2(String salaTelefono2) {
        this.salaTelefono2 = salaTelefono2;
    }

    public String getSalaFax() {
        return salaFax;
    }

    public void setSalaFax(String salaFax) {
        this.salaFax = salaFax;
    }

    public String getSalaRecibo() {
        return salaRecibo;
    }

    public void setSalaRecibo(String salaRecibo) {
        this.salaRecibo = salaRecibo;
    }

    public String getSalaExtension() {
        return salaExtension;
    }

    public void setSalaExtension(String salaExtension) {
        this.salaExtension = salaExtension;
    }

    public String getSalaEmail() {
        return salaEmail;
    }

    public void setSalaEmail(String salaEmail) {
        this.salaEmail = salaEmail;
    }

    public String getSalaSerie() {
        return salaSerie;
    }

    public void setSalaSerie(String salaSerie) {
        this.salaSerie = salaSerie;
    }

    public String getSerie() {
        return serie;
    }

    public void setSerie(String serie) {
        this.serie = serie;
    }

    public String getSucursalDescarga() {
        return sucursalDescarga;
    }

    public void setSucursalDescarga(String sucursalDescarga) {
        this.sucursalDescarga = sucursalDescarga;
    }

    public String getTerminal() {
        return terminal;
    }

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

    @XmlTransient
//    public Collection<Ajuste> getAjusteCollection() {
//        return ajusteCollection;
//    }
//
//    public void setAjusteCollection(Collection<Ajuste> ajusteCollection) {
//        this.ajusteCollection = ajusteCollection;
//    }

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

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

//    @XmlTransient
//    public Collection<Facturas> getFacturasCollection() {
//        return facturasCollection;
//    }
//
//    public void setFacturasCollection(Collection<Facturas> facturasCollection) {
//        this.facturasCollection = facturasCollection;
//    }
//
//    @XmlTransient
//    //@JsonIgnore
//    public Collection<Cargos> getCargosCollection() {
//        return cargosCollection;
//    }
//
//    public void setCargosCollection(Collection<Cargos> cargosCollection) {
//        this.cargosCollection = cargosCollection;
//    }
//
//    @XmlTransient
//    public Collection<Abonos> getAbonosCollection() {
//        return abonosCollection;
//    }
//
//    public void setAbonosCollection(Collection<Abonos> abonosCollection) {
//        this.abonosCollection = abonosCollection;
//    }

}