package com.rjconsultores.ventaboletos.entidad;

import java.math.BigDecimal;
import java.util.Date;

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.SequenceGenerator;
import javax.persistence.Table;

@Entity
@SequenceGenerator(name = "CONEXION_DESCUENTO_SEQ", sequenceName = "CONEXION_DESCUENTO_SEQ", allocationSize = 1)
@Table(name = "CONEXION_DESCUENTO")
public class ConexionDescuento {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "CONEXION_DESCUENTO_SEQ")
	@Column(name = "CONEXIONDESCUENTO_ID")
	private Long idConexionDescuento;

	@Column
	private Boolean activo;

	@ManyToOne
	@JoinColumn(name = "CONEXION_ID")
	private Conexion conexion;

	@ManyToOne(targetEntity = ClaseServicio.class)
	@JoinColumn(name = "CLASSESERVICIO_ID")
	private ClaseServicio claseServicio;

	@Column
	private Short secuencia;

	@Column
	private Integer grupo;

	@Column
	private BigDecimal descuento;

	@Column(name = "DESCUENTO_TASAEMBARQUE")
	private BigDecimal descuentoTasaEmbarque;

	@Column
	private Date fecModif;

	public Long getIdConexionDescuento() {
		return idConexionDescuento;
	}

	public void setIdConexionDescuento(Long idConexionDescuento) {
		this.idConexionDescuento = idConexionDescuento;
	}

	public Boolean getActivo() {
		return activo;
	}

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

	public Conexion getConexion() {
		return conexion;
	}

	public void setConexion(Conexion conexion) {
		this.conexion = conexion;
	}

	public ClaseServicio getClaseServicio() {
		return claseServicio;
	}

	public void setClaseServicio(ClaseServicio claseServicio) {
		this.claseServicio = claseServicio;
	}

	public Short getSecuencia() {
		return secuencia;
	}

	public void setSecuencia(Short secuencia) {
		this.secuencia = secuencia;
	}

	public Integer getGrupo() {
		return grupo;
	}

	public void setGrupo(Integer grupo) {
		this.grupo = grupo;
	}

	public BigDecimal getDescuento() {
		return descuento;
	}

	public void setDescuento(BigDecimal descuento) {
		this.descuento = descuento;
	}

	public Date getFecModif() {
		return fecModif;
	}

	public void setFecModif(Date fecModif) {
		this.fecModif = fecModif;
	}

	@Override
	public boolean equals(Object obj) {
		if (!(obj instanceof ConexionDescuento)) {
			return false;
		}
		ConexionDescuento other = (ConexionDescuento) obj;
		if(this.getClaseServicio()==null &&other.getClaseServicio()==null){
			return true;
		}
		return this.getClaseServicio().equals(other.getClaseServicio());
	}

	public BigDecimal getDescuentoTasaEmbarque() {
		return descuentoTasaEmbarque;
	}

	public void setDescuentoTasaEmbarque(BigDecimal descuentoTasaEmbarque) {
		this.descuentoTasaEmbarque = descuentoTasaEmbarque;
	}
}
