package com.rjconsultores.ventaboletos.dao;

import java.util.ArrayList;
import java.util.List;

import com.rjconsultores.ventaboletos.entidad.AliasServico;
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.entidad.Ruta;

public interface AliasServicoDAO extends GenericDAO<AliasServico, Integer>{

	/**
	 * Realiza a buscar com os filtros informados e restringindo o corridaId para is null
	 * 
	 * @param origenId
	 * @param destinoId
	 * @param rutaId
	 * @return
	 */
	public List<AliasServico> buscarAliasSemCorrida(Integer origenId,Integer destinoId,Integer rutaId);
	
	/**
	 * Realiza a busca com os filtro informados.
	 * @param origenId
	 * @param destinoId
	 * @param rutaId
	 * @param corridaId
	 * @return
	 */
	public List<AliasServico> buscar(Integer origenId,Integer destinoId,Integer rutaId,Integer corridaId);
	
	
	/**
	 * Realiza a busca com os filtro informados.
	 * @param linas
	 * @param empresas
	 * @param tiposClasses
	 * @param orgaos
	 * @param prefixo
	 * @return
	 */
	public List<AliasServico> buscarPorLinhaEmpresa(List<Ruta> linhas, List<Empresa> empresas, List<ClaseServicio> tiposClasses, List<OrgaoConcedente> orgaos, String prefixo);
	
	
	/**
	 * Realiza a busca com os filtro informados.
	 * @param origem
	 * @param destino
	 * @param linha
	 * @param idCorrida
	 * @return
	 */
	public AliasServico existe(Parada origem, Parada destino, Ruta linha, Integer idCorrida);

	List<AliasServico> buscarPorRuta(Integer rutaId);
	
}
