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

import java.util.List;

import com.rjconsultores.ventaboletos.entidad.EsquemaAsiento;
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.exception.BusinessException;

/**
 * 
 * @author Rafius
 */
public interface EsquemaAsientoService {

	public void borrar(EsquemaAsiento entidad);

	public List<EsquemaAsiento> obtenerPorCorrida(EsquemaCorrida esquemaCorrida);

	public EsquemaAsiento obtenerPorCorridaeAsiento(EsquemaCorrida esquemaCorrida, String asiento);

	/***
	 * Hace la configuracion de bloqueo de asientos de acuerdo la origen informada. <br/>
	 * 
	 * 
	 * 
	 * @param asiento
	 *            - Indica los asientos. Ej.: 1,2,3,4 o 1-4,
	 * @param origenId
	 * @return
	 */	
	public void bloqueoAsientoExclusivo(EsquemaCorrida esquemaCorrida, String asiento, Parada origen, Parada destino, Integer tiempoLiberacion) throws BusinessException;

	/**
	 * Hace la configuracion de ocupacion de bloqueo de asientos de acuerdo con el tramo informado (origen - destino). <br/>
	 * 
	 * @param asiento
	 *            - Indica los asientos. Ej.: 1,2,3,4 o 1-4,
	 * @param origenId
	 * @param destinoId
	 * @param motivoOcupacion
	 * @return
	 */
	public void bloqueoAsientoOcupacion(EsquemaCorrida esquemaCorrida, String asiento, Parada origen, Parada destino, Integer tiempoLiberacion, String motivoOcupacion) throws BusinessException;
}
