package com.rjconsultores.ventaboletos.dao;

import java.util.List;

import com.rjconsultores.ventaboletos.entidad.CtrlSerieEmbarcada;
import com.rjconsultores.ventaboletos.entidad.DispositivoEmbarcada;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Estado;
import com.rjconsultores.ventaboletos.exception.SerieEmbarcadaNaoDisponivelException;
import com.rjconsultores.ventaboletos.vo.embarcada.SerieEmbarcada;

public interface CtrlSerieEmbarcadaDAO  extends GenericDAO<CtrlSerieEmbarcada, Long> {

	public CtrlSerieEmbarcada suscribir(CtrlSerieEmbarcada entity);
	public CtrlSerieEmbarcada actualizacion(CtrlSerieEmbarcada entity);
	public void borrar(CtrlSerieEmbarcada entity);
	
	public Boolean validaDispositivoEmpresaEstadoCadastrado(DispositivoEmbarcada dispositivo, Empresa empresa, Estado estado);
	public List<SerieEmbarcada> buscarSeriesEmbarcadaDisponivel(final Integer empresaId, final Integer estadoId);
	public SerieEmbarcada buscarSerieEmbarcadaDisponivel(final Integer empresaId, final Integer estadoId) throws SerieEmbarcadaNaoDisponivelException;
	public CtrlSerieEmbarcada buscarCtrlSerieEmbarcada(final Long ctrlSerieEmbarcadaId) throws SerieEmbarcadaNaoDisponivelException;
	
	public Boolean validaPossuiDispositivo(Integer empresaId, Integer estadoId, String serie);
	
}
