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

import java.util.List;

import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.entidad.Tramo;
import com.rjconsultores.ventaboletos.entidad.TramoServicio;
import com.rjconsultores.ventaboletos.entidad.Via;

/**
 *
 * @author Rafius
 */
public interface TramoServicioDAO extends GenericDAO<TramoServicio, Integer> {

    public List<TramoServicio> buscarPorTramo(Tramo tramo);

    public List<TramoServicio> buscarPorTramo(Tramo tramo, ClaseServicio clase);
    
    /**
     * Hace la busqueda del tramo tiempo activo de acuerdo los parametros.
     * 
     * El filtrado tambien se el tramo asociado es activo
     * 
     * @param origen
     * @param destino
     * @param via
     * @param clase
     * @return
     */
    public TramoServicio buscar(Parada origen,Parada destino,Via via,ClaseServicio clase);
    
    /**
     * Indica si existen tiempos para los trechos del esquemaCorrida. O sea, debe de haber para cada tramo del esquema un tramoServicio válido 
     * 
     * @param esquemaCorridaId
     * @return
     */
    public boolean existenTiemposTramosEsquema(Integer esquemaCorridaId);

    /*
     * Rotina que corrige inconsistencias nos tramos  
     */
	public void limparInconsistenciasTramo();
}
