/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.rjconsultores.ventaboletos.service;

import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.entidad.RutaSecuencia;
import java.util.List;

/**
 *
 * @author Rafius
 */
public interface RutaSecuenciaService extends GenericService<RutaSecuencia,Integer> {

    public List<RutaSecuencia> buscarSecuenciaOrdenado(Ruta ruta);
    
    public int borrarSecuencias(Ruta ruta);
    
    /**
     * Devolver los números de secuencia de ruta en la raza, el origen y el destino.
     * 
     * @param esquemaCorrida
     * @param origem
     * @param destino
     * @return secuencia de pares -> 3, 6
     */
    List<Short> obtenerNumRutaSecuenciaPorCorridaOrigemDestino(EsquemaCorrida esquemaCorrida, Parada origem, Parada destino);
    
    List<Short> obtenerNumRutaSecuenciaPorCorridaOrigemDestinoId(EsquemaCorrida esquemaCorrida, Integer origem, Integer destino);
    
    /**
     * Devolver los números de secuencia ocupada de ruta en la raza, el origen y el destino.
     * 
     * @param esquemaCorrida
     * @param asiento
     * @return todas las secuencias ocupados ordenadas -> 3, 4, 5, 7
     */
    List<Integer> obtenerNumRutaSecuenciaOcupadaPorCorridaAsiento(EsquemaCorrida esquemaCorrida, String asiento);

}
