package com.rjconsultores.ventaboletos.vo.parada;

public class ConexionCtrlVO {

	private Long conexionctrlId;
	private Integer origenId;
	private Integer destinoId;
	private Integer grupo;
	private boolean valida;

	private Boolean indPricing;
	
	public ConexionCtrlVO(Integer origemConexaoCtrl, Integer destinoConexaoCtrl) {
		this.grupo = 0;
		this.origenId = origemConexaoCtrl;
		this.destinoId = destinoConexaoCtrl;
	}

	public Integer getOrigenId() {
		return origenId;
	}

	public void setOrigenId(Integer origenId) {
		this.origenId = origenId;
	}

	public Integer getDestinoId() {
		return destinoId;
	}

	public void setDestinoId(Integer destinoId) {
		this.destinoId = destinoId;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((destinoId == null) ? 0 : destinoId.hashCode());
		result = prime * result + ((origenId == null) ? 0 : origenId.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (!(obj instanceof ConexionCtrlVO))
			return false;
		ConexionCtrlVO other = (ConexionCtrlVO) obj;
		if (getDestinoId() == null) {
			if (other.getDestinoId() != null)
				return false;
		} else if (!getDestinoId().equals(other.getDestinoId()))
			return false;
		if (getOrigenId() == null) {
			if (other.getOrigenId() != null)
				return false;
		} else if (!getOrigenId().equals(other.getOrigenId()))
			return false;
		return true;
	}
	
	public void incrementarGrupo() {
		grupo++;
	}
	
	public void decrementarGrupo() {
		grupo--;
	}

	public Integer getGrupo() {
		return grupo;
	}

	public boolean isOrigemDestinoIgual(Integer origemConexaoCtrl, Integer destinoConexaoCtrl) {
		return getOrigenId() != null && getOrigenId().equals(origemConexaoCtrl) &&
			   getDestinoId() !=null && getDestinoId().equals(destinoConexaoCtrl);
	}

	public boolean isOrigemDestinoGrupoIgual(Integer origemConexaoCtrl, Integer destinoConexaoCtrl, Integer grupo) {
		return getOrigenId() != null && getOrigenId().equals(origemConexaoCtrl) &&
			   getDestinoId() !=null && getDestinoId().equals(destinoConexaoCtrl) && 
			   getGrupo() !=null && getGrupo().equals(grupo);
	}
	
	public boolean isValida() {
		return valida;
	}

	public void setValida(boolean valida) {
		this.valida = valida;
	}
	
	public Long getConexionctrlId() {
		return conexionctrlId;
	}

	public void setConexionctrlId(Long conexionctrlId) {
		this.conexionctrlId = conexionctrlId;
	}
	
	public Boolean getIndPricing() {
		return indPricing == null ? false : indPricing;
	}

	public void setIndPricing(Boolean indPricing) {
		this.indPricing = indPricing;
	}

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