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

import java.math.BigDecimal;
import java.util.List;

import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.Marca;
import com.rjconsultores.ventaboletos.entidad.Moneda;
import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.entidad.Plaza;
import com.rjconsultores.ventaboletos.entidad.TarifaMinima;
import com.rjconsultores.ventaboletos.entidad.TarifaMinimaCategoria;
import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;

/**
 *
 * @author rodrigo
 */
public interface TarifaMinimaService extends GenericService<TarifaMinima, Integer> {

    public List<TarifaMinima> pesquisarEspecifico(Marca marca, Parada origem, Parada destino,
            ClaseServicio claseServicio, Moneda moneda, VigenciaTarifa vigenciaTarifa);

    public List<TarifaMinima> pesquisar(Marca marca, Parada origem, Parada destino,
            ClaseServicio claseServicio, Moneda moneda,VigenciaTarifa vigenciaTarifa);

    public List<TarifaMinima> buscarPorPlaza(Plaza plaza);

    public List<TarifaMinima> buscarPorPlazaMoneda(Plaza plaza, Moneda moneda);

    public List<TarifaMinima> pesquisar(BigDecimal valor, Moneda moneda, Plaza plaza,
            Marca marca, Parada origem, Parada destino, ClaseServicio claseServicio);
    
    public List<TarifaMinima> pesquisar(TarifaMinima tarifaMinima);

    public List<TarifaMinima> pesquisarOrigemDestinoTodos(Marca marca,Parada origem, Parada destino,ClaseServicio claseServicio, Moneda moneda,VigenciaTarifa vigenciaTarifa);

    public List<TarifaMinima> buscarPorMarca(Marca marca, Moneda moneda);

    public List<TarifaMinima> buscarPorClaseServico(ClaseServicio claseServicio, Moneda moneda);
    
    public TarifaMinimaCategoria adicionarTarifaMinimaCategoria(TarifaMinimaCategoria tarifaMinimaCategoria);

    public void removerTarifaMinimaCategoria(TarifaMinimaCategoria tarifaMinimaCategoria);
    
}
