/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.rjconsultores.ventaboletos.entidad;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Rafael
 */
@Entity
@SequenceGenerator(name = "PTOVTA_DIVERSOS_SEQ", sequenceName = "PTOVTA_DIVERSOS_SEQ", allocationSize = 1)
@Table(name = "PTOVTA_DIVERSOS")
public class PtovtaDiversos implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "PTOVTA_DIVERSOS_SEQ")
    @Column(name = "PTOVTADIVERSOS_ID ")
    private Integer ptovtaDiversosId;
    
    @Column(name = "RESPONALUGUEL")
    private String responAluguel;
    
    @Column(name = "RESPONTELEFONE")
    private String responTelefone;
   
    @Column(name = "RESPONENERGIA")
    private String responEnergia;
   
    @Column(name = "POSICAO")
    private String posicao;
    
    @Column(name = "INFORMATIZADA")
    private Boolean informatizada;
    
    @Column(name = "BILHETEINFO")
    private Boolean bilheteInfo;
    
    @Column(name = "VENDAINTERNET")
    private Boolean vendaInternet;
    
    @Column(name = "DIGITACAOSEQ")
    private Boolean digitacaoSeq;
    
    @Column(name = "TELEENTREGA")
    private Boolean teleEntrega;
    
    @Column(name = "TRABALHABILHETE")
    private Boolean trabalhaBilhete;
    
    @Column(name = "TRABOFPSPROPRIA")
    private Boolean ofpsPropria;
    
    @Column(name = "TRABOFPSTERCEIROS")
    private Boolean ofpsTerceiros;
    
    @Column(name = "ACTIVO")
    private Boolean activo;
   
    @Column(name = "FECMODIF")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fecmodif;
   
    @Column(name = "USUARIO_ID")
    private int usuarioId;
    
  
    
    @JoinColumn(name = "PUNTOVENTA_ID", referencedColumnName = "PUNTOVENTA_ID")
    @ManyToOne
    private PuntoVenta puntoventaId;

    public PtovtaDiversos() {
    }
    
    public enum gerarEnum {
    	// Declaração dos enum  
    	
    
    	POSICAOFORAEIXO ("FORA DO EIXO DA LINHA", "FEL"),
    	POSICAONOEIXO  ("NO EIXO DA LINHA", "EL");
    	
    	
   
    	// Definição das constantes
    	public final String valor;
    	public final String descricao;
    	
   
    	public String valor() {
			return this.valor;
		}
    	public String descricao() {
			return this.descricao;
		}
		private gerarEnum( String descricao, String valor) {
			this.descricao = descricao;
			this.valor = valor;
		}
    	
    		 
    }

//    private static List<String> posicaoList = new ArrayList<String>();
//    
//    static{
//    	posicaoList.add("FORA DO EIXO DA LINHA");
//    	posicaoList.add("NO EIXO DA LINHA");
//    	
//    }
//    
    
    public PtovtaDiversos(Integer ptovtaDiversosId, String responAluguel, String responTelefone, String responEnergia, String posicao, Boolean informatizada, Boolean bilheteInfo, Boolean vendaInternet, Boolean digitacaoSeq, Boolean teleEntrega, Boolean trabalhaBilhete, Boolean ofpsPropria, Boolean ofpsTerceiros, Boolean activo, Date fecmodif, int usuarioId) {
		super();
		this.ptovtaDiversosId = ptovtaDiversosId;
		this.responAluguel = responAluguel;
		this.responTelefone = responTelefone;
		this.responEnergia = responEnergia;
		this.posicao = posicao;
		this.informatizada = informatizada;
		this.bilheteInfo = bilheteInfo;
		this.vendaInternet = vendaInternet;
		this.digitacaoSeq = digitacaoSeq;
		this.teleEntrega = teleEntrega;
		this.trabalhaBilhete = trabalhaBilhete;
		this.ofpsPropria = ofpsPropria;
		this.ofpsTerceiros = ofpsTerceiros;
		this.activo = activo;
		this.fecmodif = fecmodif;
		this.usuarioId = usuarioId;
	}


    public Integer getPtovtaDiversosId() {
		return ptovtaDiversosId;
	}

	public void setPtovtaDiversosId(Integer ptovtaDiversosId) {
		this.ptovtaDiversosId = ptovtaDiversosId;
	}

	public String getResponAluguel() {
        return responAluguel;
    }

    public void setResponAluguel(String responAluguel) {
        this.responAluguel = responAluguel;
    }

    public String getResponTelefone() {
        return responTelefone;
    }

    public void setResponTelefone(String responTelefone) {
        this.responTelefone = responTelefone;
    }

    public String getResponEnergia() {
        return responEnergia;
    }

    public void setResponEnergia(String responEnergia) {
        this.responEnergia = responEnergia;
    }

    public String getPosicao() {
        return posicao;
    }

    public void setPosicao(String posicao) {
        this.posicao = posicao;
    }
    

    public Boolean getInformatizada() {
		return informatizada;
	}

	public void setInformatizada(Boolean informatizada) {
		this.informatizada = informatizada;
	}

	public Boolean getBilheteInfo() {
		return bilheteInfo;
	}

	public void setBilheteInfo(Boolean bilheteInfo) {
		this.bilheteInfo = bilheteInfo;
	}

	public Boolean getVendaInternet() {
		return vendaInternet;
	}

	public void setVendaInternet(Boolean vendaInternet) {
		this.vendaInternet = vendaInternet;
	}

	public Boolean getDigitacaoSeq() {
		return digitacaoSeq;
	}

	public void setDigitacaoSeq(Boolean digitacaoSeq) {
		this.digitacaoSeq = digitacaoSeq;
	}

	public Boolean getTeleEntrega() {
		return teleEntrega;
	}

	public void setTeleEntrega(Boolean teleEntrega) {
		this.teleEntrega = teleEntrega;
	}

	public Boolean getTrabalhaBilhete() {
		return trabalhaBilhete;
	}

	public void setTrabalhaBilhete(Boolean trabalhaBilhete) {
		this.trabalhaBilhete = trabalhaBilhete;
	}

	public Boolean getOfpsPropria() {
		return ofpsPropria;
	}

	public void setOfpsPropria(Boolean ofpsPropria) {
		this.ofpsPropria = ofpsPropria;
	}

	public Boolean getOfpsTerceiros() {
		return ofpsTerceiros;
	}

	public void setOfpsTerceiros(Boolean ofpsTerceiros) {
		this.ofpsTerceiros = ofpsTerceiros;
	}

	public Boolean getActivo() {
        return activo;
    }

    public void setActivo(Boolean activo) {
        this.activo = activo;
    }

    public Date getFecmodif() {
        return fecmodif;
    }

    public void setFecmodif(Date fecmodif) {
        this.fecmodif = fecmodif;
    }

    public int getUsuarioId() {
        return usuarioId;
    }

    public void setUsuarioId(int usuarioId) {
        this.usuarioId = usuarioId;
    }

   

    public PuntoVenta getPuntoventaId() {
        return puntoventaId;
    }

    public void setPuntoventaId(PuntoVenta puntoventaId) {
        this.puntoventaId = puntoventaId;
    }

  



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

    @Override
    public String toString() {
        return "com.rjconsultores.ventaboletos.entidad.PtovtaDiversos[ ptovtaDiversosId=" + ptovtaDiversosId + " ]";
    }
    
}
